Sql Server的新属性:CROSS APPLY和OUTER APPLY
与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
详细用法:看这里