在阅读SQL Server 2012文档时,我遇到了以下示例:
USE AdventureWorks2012 ;
GO
SELECT DepartmentID, Name
FROM HumanResources.Department
WHERE EXISTS (SELECT NULL)
ORDER BY Name ASC ;
我还没有看到SELECT NULL
之前。它是什么?在给定的示例中它是如何工作的?(很明显,SELECT NULL
返回NULL
)。
SELECT NULL
返回包含一行的单行,其中包含 NULL
您可以通过SELECT NULL
在SSMS中运行来验证这一点。
它在您发布的查询中的目的是说明它EXISTS
并不关心其子查询的内容,而只是返回了某些内容,在这种情况下,该行包含NULL
这与在聚合中未考虑的类似COUNT
内容形成对比NULL
考虑一下:
SELECT
1
WHERE
EXISTS(SELECT NULL)
-- Returns 1
与此:
SELECT
COUNT(r.c)
FROM
(SELECT CAST(NULL AS int) AS c) AS r
-- Returns 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句