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

时间:2016-10-31 07:02:53

标签: sql sql-server sql-server-2012 isnull

为什么select * from [table] where [table].[column] != null不能用于我的查询,结果为空。

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

Microsoft SQL Server中!= nullis not null之间的区别是什么?

2 个答案:

答案 0 :(得分:4)

数据库中的

NULL不是值。这意味着“未知”或“数据缺失”等内容。

如果您没有任何关于(=!=运营商)的任何信息,您无法确定某些您没有任何相关信息的内容。但您可以说是否有任何可用信息(IS NULLIS NOT NULL)。

恕我直言,实际上它并不是很有用。但事实就是如此,而且历史悠久。

答案 1 :(得分:2)

您无法使用=运算符与NULL进行比较,因为NULL表示未知值,因此您无法将某些内容与某些未知值相提并论。这就是提供IS NULL子句以过滤列为null的行的原因。

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