不,应该没有区别。
EXISTS找到单个匹配的行后立即退出。这就是为什么它总是优于例如
(select COUNT(*) from ...) >0-一个
COUNT将迫使被视为所有行。
如果创建以下四个查询:
select * from sys.objectsselect top 1 * from sys.objectsselect 1 where exists(select * from sys.objects)select 1 where exists(select top 1 * from sys.objects)
并打开执行计划,您将看到第二个查询生成了一个包含
TOP操作符的执行计划。第三和第四查询产生 相同的 计划。将
TOP被忽略。



