Sql 为什么[表][列]!=null不工作?

Sql 为什么[表][列]!=null不工作?,sql,sql-server,sql-server-2012,isnull,Sql,Sql Server,Sql Server 2012,Isnull,为什么从[table]中选择*where[table].[column]!=null不适用于我的查询,结果为空 但是,select*from[table],其中[table].[column]不为空正在工作,并查找[table].[column]用null填充的记录 !=在Microsoft SQL Server中为null且不是null?数据库中的null不是值。它的意思是“未知”或“数据丢失” 您无法判断您没有任何相关信息的内容是否等于您也没有相关信息的其他内容(=,!=运算符)。但是您可以

为什么
从[table]中选择*where[table].[column]!=null
不适用于我的查询,结果为空

但是,
select*from[table],其中[table].[column]不为空
正在工作,并查找
[table].[column]
null
填充的记录


!=在Microsoft SQL Server中为null且
不是null

数据库中的
null
不是值。它的意思是“未知”或“数据丢失”

您无法判断您没有任何相关信息的内容是否等于您也没有相关信息的其他内容(
=
!=
运算符)。但是您可以说是否有任何可用信息(
为NULL
不为NULL


嗯,实际上它不是很有用。但是它是这样的,并且有很长的历史。

你不能用
=
操作符与NULL进行比较,因为NULL意味着未知的值,所以你不能将某物等同于某个未知的值。这就是为什么提供了
isnull
子句来筛选出列为
NULL
的行


阅读有关SQL Server中的详细信息

不为空
返回记录填写
null
不为空
是标准值,您无法将
null
进行比较=无法与非值的内容进行比较。NULL表示没有值。你不能把什么都比不上什么。
为空
不为空
表示
有值
没有值