什么是SQL中的SELECT NULL?

新版

在阅读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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章