您的位置:首页 > 移动开发

cross apply 与 inner join 的区别

2016-06-01 15:30 211 查看
下面还有一个小例子,根据小例子可以将cross apply /outer apply 分别换成inner join /left join,结果是一样的,但是cross apply之后一般是带函数.
inner join之后一般是带表.

with b as (select distinct source from aqua_rpt.crd.crd_report_sft_derv_data) 
select * from b 
cross apply 
(select top 100 * from aqua_rpt.crd.crd_report_sft_derv_data
a where b.source = a.source) a

当然也可以用下面的语句,但是由于 b表数据量很大,所以考虑到消耗内存太大,就采用 CTE.

select b.source,a.*

from aqua_rpt.crd.crd_report_sft_derv_data
b

cross apply 

(select top 100 * from aqua_rpt.crd.crd_report_sft_derv_data
a where b.source = a.source) a
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: