码迷,mamicode.com
首页 > 移动开发 > 详细

CROSS APPLY 和 OUTER APPLY 区别

时间:2016-09-26 16:01:47      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

  我们知道有个 SQL Server 2000 中有个 cross join 是用于交叉联接的。实际上增加 cross apply 和 outer apply 是用于交叉联接表值函数(返回表结果集的函数)的, 更重要的是这个函数的参数是另一个表中的字段。

-- OUTER APPLY
select *
  from TABLE_1 T1
cross apply FN_TableValue(T1.column_a)

-- OUTER APPLY
select *
  from TABLE_1 T1
outer apply FN_TableValue(T1.column_a)


cross apply 和 outer apply 对于 T1 中的每一行都和派生表(表值函数根据T1当前行数据生成的动态结果集) 做了一个交叉联接。cross apply 和 outer apply 的区别在于: 如果根据 T1 的某行数据生成的派生表为空,cross apply 后的结果集 就不包含 T1 中的这行数据,而 outer apply 仍会包含这行数据,并且派生表的所有字段值都为 NULL。 

 

CROSS APPLY 和 OUTER APPLY 区别

标签:

原文地址:http://www.cnblogs.com/chengxun520/p/5909168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!