小编Sco*_*NET的帖子

216
推荐指数
2
解决办法
17万
查看次数

如何在单个SELECT语句中使用多个公用表表达式?

我正在简化复杂的select语句,所以我想我会使用常用的表表达式.

声明一个cte工作正常.

WITH cte1 AS (
    SELECT * from cdr.Location
    )

select * from cte1 
Run Code Online (Sandbox Code Playgroud)

是否可以在同一个SELECT中声明和使用多个cte?

即这个sql给出了一个错误

WITH cte1 as (
    SELECT * from cdr.Location
)

WITH cte2 as (
    SELECT * from cdr.Location
)

select * from cte1    
union     
select * from cte2
Run Code Online (Sandbox Code Playgroud)

错误是

Msg 156, Level 15, State 1, Line 7
Incorrect syntax near the keyword 'WITH'.
Msg 319, Level 15, State 1, Line 7
Incorrect syntax near the keyword 'with'. If this statement is a common table …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server common-table-expression sql-server-2008

90
推荐指数
2
解决办法
6万
查看次数

如何使用带有IF EXISTS子查询的SQL Select语句?

如何使用IF EXISTS语句(SQL Server)从子查询中选择布尔值?

它应该是这样的:

SELECT 
  TABEL1.Id, 
  NewFiled = (IF EXISTS(SELECT Id FROM TABLE2 WHERE TABLE2.ID = TABEL1.ID) 
                 SELECT 'TRUE' 
              ELSE 
                 SELECT 'FALSE') 
FROM TABEL1
Run Code Online (Sandbox Code Playgroud)

sql sql-server exists

67
推荐指数
4
解决办法
19万
查看次数

Angular JS隐藏了ng-repeat的第一个元素

我如何隐藏ng-repeat的第一个元素?

<div ng-repeat="item in items" ng-hide="true">
    <div>{{ item.value }}</div>
</div>
Run Code Online (Sandbox Code Playgroud)

这样可以隐藏整个ng-repeat块,但是如何只隐藏项目中的第一项?我希望使用更突出的html/etc以完全不同的方式显示它,因此将它放在该数据列表中是有用的.

javascript angularjs angularjs-ng-repeat

54
推荐指数
2
解决办法
4万
查看次数

EF Code First DBContext和Transactions

我想知道实现事务的最佳方式是什么DBContext.特别是,

  1. DbContext.SaveChanges如果我更改多个实体,是否实现事务内部?
  2. 如果我想DbContext.SaveChanges多次呼叫(相同的contxet /不同的contxets),如何实现交易?

entity-framework transactions entity-framework-4.1 dbcontext

50
推荐指数
1
解决办法
2万
查看次数

通过EF插入后获取自动身份密钥

在通过Entity Framework 4.1添加记录时,是否有直接的方法来检索数据库自动生成的主键?

例如:

dbcontext.Entity_Tables.Add(new Entity_Table { item1 = val1, item2 = val2 });
dbcontext.SaveChanges();
newPK = ???;
Run Code Online (Sandbox Code Playgroud)

SQL等价物将是:

newPK = executeOnDB("INSERT INTO Entity_Table (item1, item2) VALUES (val1, val2);SELECT @@Indentity";);
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我使用的是MySQL,但SQL与MSSQL上的相同

entity-framework entity-framework-4.1 dbcontext

46
推荐指数
1
解决办法
6万
查看次数

从同一个表中的多个列中选择不同的值

我正在尝试构造一个SQL语句,该语句从位于同一个表中的多个列返回唯一的非空值.

 SELECT distinct tbl_data.code_1 FROM tbl_data
      WHERE tbl_data.code_1 is not null
 UNION
 SELECT tbl_data.code_2 FROM tbl_data
      WHERE tbl_data.code_2 is not null;
Run Code Online (Sandbox Code Playgroud)

例如,tbl_data如下:

 id   code_1    code_2
 ---  --------  ----------
 1    AB        BC
 2    BC        
 3    DE        EF
 4              BC
Run Code Online (Sandbox Code Playgroud)

对于上表,SQL查询应返回两列中的所有唯一非空值,即:AB,BC,DE,EF.

我对SQL很新.我上面的声明有效,但有没有更简洁的方法来编写这个SQL语句,因为这些列来自同一个表?

sql union distinct

22
推荐指数
2
解决办法
7万
查看次数

SQL Server MERGE +加入其他表

我在数据库项目中使用MERGE语句来填充静态值集中的引用数据,如下所示:

    MERGE INTO dbo.[User] AS TARGET
USING (VALUES
    ('me@somewhere.com', 'My Name'))
AS SOURCE(UserName, FullName)
ON SOURCE.UserName = TARGET.UserName
WHEN NOT MATCHED BY TARGET THEN
    INSERT (UserId, UserName, FullName)
    VALUES (NEWID(), UserName, FullName);
Run Code Online (Sandbox Code Playgroud)

当我想根据其他表中的内容填充辅助表时,会出现问题.例如,我的UserPermission表包含用户ID和角色ID,我希望我的静态值设置为('me@somewhere.com','Admin'),并且能够加入User和Permission以获得INSERTing的ID值.不知道该怎么办......

编辑:

用户表(ID,用户名)1,John Smith 2,Mark Wahlerg

角色表(ID,RoleName)1,管理员2,用户3,访客

用户角色表(用户ID,角色ID)

我希望MERGE语句的SQL调整User-Role表,以便我可以指定类似的东西:

USING(VALUES
 ('John Smith', 'Administrator'),
 ('Mark Wahlburg', 'User')
Run Code Online (Sandbox Code Playgroud)

并且它将连接以确定ID,插入不存在的组合(并且可能删除那些但不在MERGE中的组合.

解:

WITH CTE AS
(
   SELECT UserId, RoleId
   FROM (VALUES
      ('John Smith', 'Administrator'),
      ('Mark Wahlburg', 'User'))
      AS SOURCE(UserName, RoleName)
   INNER JOIN User ON SOURCE.UserName = User.UserName
   INNER JOIN Role ON SOURCE.RoleName …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server merge common-table-expression sql-merge

11
推荐指数
1
解决办法
1万
查看次数

angularjs $ resource类级回调或后处理

我有一个$resourceAPI将始终返回一些需要在进入表示层之前清理的数据.具体来说,它是.NET以可爱的'/Date(...)/'格式返回Date对象.

我不想每次打电话.query()或写电话都要写回电.get().是否有某种方法可以使用一个回调来扩展资源,该回调可以在更新实例属性的REST方法上调用,或者$watch在date属性更改时添加一些被触发的类型?基本上每件事都会发生$resource.

angular.module('myAppServices', ['ngResource'])
    .factory('Participant', ['$resource', function ($resource) {
        var res = $resource('api/url/participants/:id', { id: '@id' });

        // This obviously doesn't work, but something kinda like this?
        res.prototype.$watch(this.FieldName, function(newVal, oldVal) {
            if (needsCleaning(newVal.fieldName) {
                this.FieldName = cleanupField(newVal);
            }
        };
    });
Run Code Online (Sandbox Code Playgroud)

javascript angularjs ngresource

9
推荐指数
2
解决办法
3464
查看次数

Android构建失败'无法运行ant版本'

我正在尝试使用离子cordova来运行示例演示,但是当我尝试构建时出现错误:

    Famtop myApp $ ionic build android
Running command: "c:\Program Files\nodejs\node.exe" c:\Users\Famtop\myApp\hooks\
after_prepare\010_add_platform_class.js c:/Users/Famtop/myApp
add to body class: platform-android
Running command: "c:\Program Files\nodejs\node.exe" c:\Users\Famtop\myApp\hooks\
after_prepare\020_remove_sass_from_platforms.js c:/Users/Famtop/myApp
Running command: c:\Users\Famtop\myApp\platforms\android\cordova\build.bat
c:\Users\Famtop\myApp\platforms\android\cordova\node_modules\q\q.js:126
                    throw e;
                          ^
Error: Failed to run "ant -version", make sure you have ant installed and added
to your PATH.
    at c:\Users\Famtop\myApp\platforms\android\cordova\lib\check_reqs.js:43:27
    at ChildProcess.exithandler (child_process.js:751:5)
    at ChildProcess.emit (events.js:110:17)
    at maybeClose (child_process.js:1008:16)
    at Process.ChildProcess._handle.onexit (child_process.js:1080:5)
ERROR building one of the platforms: Error: c:\Users\Famtop\myApp\platforms\andr
oid\cordova\build.bat: Command failed with exit code 1
You …
Run Code Online (Sandbox Code Playgroud)

bash android cordova ionic

6
推荐指数
1
解决办法
6818
查看次数