Sql Server的新属性:CROSS APPLY和OUTER APPLY

欢欢欢欢 发表于 2019-9-2 12:51

与Join类似,却比Join能更精细的控制

例如,左表一条记录关联右表多条记录时,需要控制右表的某一条或几条记录跟左表匹配。

这样原来只有结合join 和PARTITION BY才能做到的查询就没必要那么麻烦了。

用法:

select T1.StudentNo, T1.Name, T2.ExamScore, T2.ExamDate fromStudent T1

cross apply(

    select top 1 * FROM w_Related r where e.ID = r.MainId ORDER BY r.ID desc

) T2

OUTER APPLY类似;

和join的对应关系:

CROSS APPLY 对应 INNER JOIN

OUTER APPLY 对应 LEFT JOIN

详细用法:看这里