在阅读SQL Server 2012 doc。时,我遇到了以下示例:
USE AdventureWorks2012 ;
GO
SELECT DepartmentID, Name
FROM HumanResources.Department
WHERE EXISTS (SELECT NULL)
ORDER BY Name ASC ;
我之前没有见过SELECT NULL
。它是什么,以及它如何在给定的例子中起作用? (显然,SELECT NULL
会返回NULL
)。
答案 0 :(得分:3)
SELECT NULL
返回单行,其中包含一列,包含NULL
您可以通过在SSMS中运行SELECT NULL
来验证这一点。
在您发布的查询中,它的目的是说明EXISTS
不关心其子查询的内容,只返回某事,在这种情况下是一行与NULL
这与COUNT
相似, 在其聚合中1>}
考虑一下:
NULL
与此相对:
SELECT
1
WHERE
EXISTS(SELECT NULL)
-- Returns 1
答案 1 :(得分:1)
SELECT NULL
与WHERE EXISTS
一起使用以显示退出状态,但不显示数据(当您不需要时)
例如,您可以:
Select something
From a b
Where Exists (SELECT NULL
From C item
on item.cID = b.cID)