小编Aj.*_*.na的帖子

基于以下示例,交叉应用和内部连接之间的差异

下面我有两个表#temp和#temp2.

 create table #temp
    (
     col1 int
     )

     insert into #temp values(6),(1),(2),(3),(null)



     create table #temp2
     (
       col1 int
       )
       insert into #temp2 values(1),(2),(1),(2),(3),(null)
Run Code Online (Sandbox Code Playgroud)

我也有以下两个问题:INNER JOIN:

 SELECT t1.col1,
           Sum(t2.col1) AS col1
    FROM   #temp t1
           INNER JOIN #temp2 t2
                   ON t1.col1 = t2.col1
    GROUP  BY t1.col1
Run Code Online (Sandbox Code Playgroud)

结果:

col1    col1
1        2
2        4
3        3
Run Code Online (Sandbox Code Playgroud)

第二个查询是

随着交叉申请:

SELECT *
FROM   #temp t1
       CROSS apply (SELECT Sum(col1) AS col1
                    FROM   #temp2 t2
                    WHERE  t1.col1 = t2.col1) A
Run Code Online (Sandbox Code Playgroud)

结果:

col1    col1
1        2
2 …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012

7
推荐指数
1
解决办法
7301
查看次数

标签 统计

sql-server ×1

sql-server-2012 ×1