DISTINCT NULL在SQL Server中返回单个NULL

Mah*_*ala 17 sql-server

在Sql Server中,NULL不等于NULL。(为什么在SQL Server 中NULL = NULL求值为false)那么以下代码为什么返回单个NULL。

CREATE TABLE #TEMP1
    (ID INT)
INSERT INTO #TEMP1
SELECT NULL
UNION ALL
SELECT NULL
SELECT DISTINCT ID FROM #TEMP1
DROP TABLE #TEMP1

ID
------
NULL
Run Code Online (Sandbox Code Playgroud)

我期望

ID
------
NULL
NULL
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 35

DISTINCT文档中明确指出了要比较的NULL处理。摘抄:

不同

指定仅唯一行可以出现在结果集中。对于DISTINCT关键字,将空值视为相等。