为什么 [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 服务器中 != null
和 is not null
有什么区别?
NULL
在数据库中不是一个值。意思是 "unknown" 或 "data missing".
您无法判断您没有任何信息的事物是否等于您也没有任何信息的其他事物(=
、!=
运算符)。但是你可以说是否有可用的信息(IS NULL
,IS NOT NULL
).
恕我直言,在实践中它不是很有用。但就是这样,历史悠久。
您不能使用 =
运算符与 NULL 进行比较,因为 NULL 表示 未知 值,因此您不能将某物等同于某个未知值。这就是为什么提供 IS NULL
子句来过滤掉列为 null
.
的行的原因
在 SQL 服务器中阅读有关 THREE VALUED LOGIC 的更多信息。
为什么 select * from [table] where [table].[column] != null
对我的查询不起作用并且结果为空。
但是 select * from [table] where [table].[column] is not null
正在工作并找到 [table].[column]
被 null
填充的记录!
Microsoft SQL 服务器中 != null
和 is not null
有什么区别?
NULL
在数据库中不是一个值。意思是 "unknown" 或 "data missing".
您无法判断您没有任何信息的事物是否等于您也没有任何信息的其他事物(=
、!=
运算符)。但是你可以说是否有可用的信息(IS NULL
,IS NOT NULL
).
恕我直言,在实践中它不是很有用。但就是这样,历史悠久。
您不能使用 =
运算符与 NULL 进行比较,因为 NULL 表示 未知 值,因此您不能将某物等同于某个未知值。这就是为什么提供 IS NULL
子句来过滤掉列为 null
.
在 SQL 服务器中阅读有关 THREE VALUED LOGIC 的更多信息。