什么是SQL中的SELECT NULL?

时间:2014-04-25 01:22:32

标签: sql sql-server

在阅读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)。

2 个答案:

答案 0 :(得分:3)

SELECT NULL返回单行,其中包含一列,包含NULL

您可以通过在SSMS中运行SELECT NULL来验证这一点。

在您发布的查询中,它的目的是说明EXISTS不关心其子查询的内容,只返回某事,在这种情况下是一行与NULL

这与COUNT相似, 在其聚合中}

考虑一下:

NULL

与此相对:

SELECT 
    1
WHERE
    EXISTS(SELECT NULL)
-- Returns 1

答案 1 :(得分:1)

SELECT NULLWHERE EXISTS一起使用以显示退出状态,但不显示数据(当您不需要时)

例如,您可以:

Select something 
From a b
Where Exists (SELECT NULL 
              From C item
              on item.cID = b.cID)