实际示例,何时在SQL中使用OUTER / CROSS APPLY

我一直在CROSS / OUTER APPLY和一位同事一起研究,我们正在努力寻找在哪里使用它们的真实示例。


我已经花了很多时间研究什么时候应该在内部联接上使用交叉申请?和谷歌搜索,但主要的(唯一的)示例似乎很奇怪(使用表中的行数来确定要从另一个表中选择多少行)。


我认为这种情况可能会受益于OUTER APPLY:


联系人表(每个联系人包含1条记录)通信条目表(每个联系人可以包含n个电话,传真,电子邮件)


但是,使用子查询,公用表表达式OUTER JOIN以及RANK()和OUTER APPLY似乎都表现相同。我猜这意味着该方案不适用于APPLY。


请分享一些真实的例子,并帮助解释该功能!


慕尼黑的夜晚无繁华
浏览 1170回答 3
3回答

子衿沉夜

一个现实的例子是,如果您有一个调度程序,并且想查看每个调度任务的最新日志条目。select t.taskName, lg.logResult, lg.lastUpdateDatefrom task tcross apply (select top 1 taskID, logResult, lastUpdateDate             from taskLog l             where l.taskID = t.taskID             order by lastUpdateDate desc) lg
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server