为什么 [table].[column] != null 不起作用?

Why [table].[column] != null is not working?

为什么 select * from [table] where [table].[column] != null 对我的查询不起作用并且结果为空。

但是 select * from [table] where [table].[column] is not null 正在工作并找到 [table].[column]null 填充的记录!

Microsoft SQL 服务器中 != nullis not null 有什么区别?

NULL 在数据库中不是一个值。意思是 "unknown" 或 "data missing".

您无法判断您没有任何信息的事物是否等于您也没有任何信息的其他事物(=!= 运算符)。但是你可以说是否有可用的信息(IS NULL,IS NOT NULL).

恕我直言,在实践中它不是很有用。但就是这样,历史悠久。

您不能使用 = 运算符与 NULL 进行比较,因为 NULL 表示 未知 值,因此您不能将某物等同于某个未知值。这就是为什么提供 IS NULL 子句来过滤掉列为 null.

的行的原因

在 SQL 服务器中阅读有关 THREE VALUED LOGIC 的更多信息。