Select TOP 0 and OUTER APPLY



我正面对一段代码,这段代码对我来说似乎很难理解,尽管我对Select TOP 0和Outer APPLY分别是如何工作的有一个简要的了解。这段代码是做什么的?谢谢预支!

select * from taxex t1
outer apply 
(select top 0 id, b_date, total_sum from loans t2 where t1.id = t2.id 
and t1.i_date >= t2.b_date) ```

outer apply唯一可能有用的操作是将outer apply生成的列中的空值转换为loan表中各自列的类型。比较:

下面的查询将使用

失败

Msg 241 Level 16 State 1 Line 1转换日期失败和/或时间从字符串。

select  t1.*, t2.*
from (
select 1 a, 2 b
) t1
outer apply (
select top 0 cast('2002-01-01' as date) d
) t2
union all 
select 3, 4, 'abc';

而下一个是ok

select  t1.*, null d
from (
select 1 a, 2 b
) t1
union all 
select 3, 4, 'abc'

相关内容

  • 没有找到相关文章

最新更新