SQL Server:为什么这个查询不返回NULL值?

que*_*osa 3 t-sql sql-server

我有一个表,其中一列名为value,类型为int,其中包含4行:

20
50
NULL
0
Run Code Online (Sandbox Code Playgroud)

为什么此查询仅返回20和50?我也需要NULL值.

SELECT * 
FROM dbo.myTable
WHERE value != 0
Run Code Online (Sandbox Code Playgroud)

Dav*_*idG 12

在SQL中,NULL是一个特殊值,任何东西都不能等于或不等于它.事实上,NULL甚至不等于自己.搜索空值时,必须使用IS运算符.因此,您需要更改查询以包含它们:

SELECT * 
FROM dbo.myTable
WHERE value !=0
OR value IS NULL
Run Code Online (Sandbox Code Playgroud)