SQL Server的cross apply与inner join区别是什么? -问答-阿里云开发者社区-阿里云

开发者社区> 吴孟桥> 正文

SQL Server的cross apply与inner join区别是什么?

2016-06-15 15:23:08 3847 2

cross apply ,好像也是用于内联接的啊。可是感觉没啥用。因为用join就可以直接代替了。请问大家是不是啊。如果不是,那又是为什么?

SQL
取消 提交回答
全部回答(2)
  • 风移
    2019-07-17 19:39:24

    哎呀,当然替代不了啦。据一个简单的业务场景,比如有两个数据结果集1,和2,1结果集很小,2结果集很大。如果,让1和2在连接的时候,我只需要找到2中一个满足条件的纪录,就不用接着往下找,这一次连接循环退出。这种业务场景INNER JOIN很难实现,因为INNER JOIN必须要找到所有满足条件的纪录。例子如下:

    use tempdb
    GO
    
    ;WITH dataSet1
    AS( SELECT *    FROM (VALUES(0), (1), (2), (3), (4), (5), (6), (7), (8), (9)) AS T(C)
    ), dataSet2
    as(
    SELECT a = a.C, b = b.C, c = c.C, d = d.C
     FROM dataSet1 as a, dataSet1 as b, dataSet1 as c, dataSet1 as d
     )
     SELECT A.C, B.a
     FROM dataSet1 AS A
        CROSS APPLY(
            SELECT TOP 1 *
            FROM dataSet2 AS B
            WHERE B.a = A.C
        ) AS B

    Screen_Shot_2017_01_28_at_8_59_54_PM

    0 0
  • 吴孟桥
    2019-07-17 19:39:24

    cross apply是sql server 2005新增加的,最大的用处是和分组配合使用,比如说分组后每一组数据的排序和查询。

    0 0
添加回答
相关问答

3

回答

请教一个范围查询的问题

小文文文 2019-06-14 14:37:01 115019浏览量 回答数 3

4

回答

Spark 【问答合集】

社区小助手 2019-05-29 14:13:40 123646浏览量 回答数 4

9

回答

【精品问答合集】Hbase热门问答

hbase小能手 2019-05-29 14:37:26 120208浏览量 回答数 9

38

回答

干货分享:DBA专家门诊一期:索引与sql优化问题汇总

xiaofanqie 2014-12-25 15:13:38 91751浏览量 回答数 38

1

回答

通过spark-thriftserver读取hive表执行sql时,tasks 数量怎么设置

游客iwhrjhvjoyqts 2019-07-05 15:30:22 113844浏览量 回答数 1

38

回答

[@饭娱咖啡][¥20]对于慢sql有没有什么比较实用的诊断和处理方法?

江小白太白 2018-10-30 18:47:38 141633浏览量 回答数 38

2

回答

mySQL数据库报错You have an error in your SQL syntax

落地花开啦 2016-02-14 16:09:24 126109浏览量 回答数 2

7

回答

flink sql 支持checkpoints吗?

游客izljdlkgbdwfc 2019-07-10 17:46:37 121096浏览量 回答数 7

9

回答

HaoSQL,好用的SQL等数据库一键包发布!

梦丫头 2017-11-14 15:20:55 70737浏览量 回答数 9

78

回答

【2013.9.5修正版图文】新手如何使用阿里云(linux)服务器建站(搬站)

姑苏公子 2013-04-11 00:39:13 107722浏览量 回答数 78
+关注
0
文章
2240
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载