【发布时间】:2012-03-28 18:53:34
【问题描述】:
我读到,CROSS APPLY 就像 JOIN.. 我认为 JOIN 也可以通过 EXISTS 完成(相关子查询)
我很困惑,使用CROSS APPLY和EXISTS有什么区别?
我应该什么时候针对 EXISTS 进行 CROSS APPLY?
【问题讨论】:
-
除了格兰特的 cmets,我还要提到“CROSS APPLY”和“OUTER APPLY”是奇特的操作。您可以在不使用 APPLY 的情况下完成大量重要工作。不要阻止学习它并牢记它,但你会发现申请 APPLY 的机会不是每天都有。如果您可以借用 Itzik Ben-Gan 的 TSQL Querying 的副本,或者在线阅读一些页面,他有一个名为“TOP and APPLY”的章节。我想说的应用是 1) 典型的和 2) 不是很令人兴奋的。
-
是的,Itzik Ben-Gan 的书 +10。这是必须拥有的。
-
@GrantFritchey: +10 ?!!通常人们会给 +1 .. :D ;)
-
今天早上我来的时候,我记得上周五的一位同事就这个相关的、更一般的问题推荐了this SO question/answers。我只是略读了一下,但累积了大约 180 次赞成票,我的同事不会错。
-
@dotNETbeginner 就像芝加哥的选举一样,尽早投票并经常投票。
标签: sql sql-server join exists cross-apply