Sql 查询空布尔字段

Sql 查询空布尔字段,sql,sql-server,tsql,Sql,Sql Server,Tsql,当查询为空的布尔字段时,为什么 Select * From MyTableName where [boolfieldX] <> 1 从MyTableName中选择*,其中[boolfieldX]1 是否在[boolfieldX]中不返回任何空行?1 null我希望返回带有null的行。无法使用比较运算符测试null值,例如=,请尝试使用此查询: select * from mytablename where [boolFieldX] is null And [boolFieldX

当查询为空的布尔字段时,为什么

Select * From MyTableName where [boolfieldX] <> 1
从MyTableName中选择*,其中[boolfieldX]1

是否在[boolfieldX]中不返回任何空行?1 null我希望返回带有null的行。

无法使用比较运算符测试
null
值,例如
=
请尝试使用此查询:

select * from mytablename where [boolFieldX] is null And [boolFieldX] <> 1
从mytablename中选择*,其中[boolFieldX]为空且[boolFieldX]1

我认为这是因为null是一个未知值。无法查询未知的“值”。在我看来,将null称为“值”是一种矛盾修饰法,因为它代表未知。将运算符“Is Null”和“Not Is Null”与任何选择条件结合使用将返回所需的结果,或者通过将Null转换为另一个值来转换它,其工作方式如下:IsNull([boolfield],“某个兼容值”)

请尽量鼓励修复文档链接,而不是直接删除链接和周围段落,留下评论。
Select * From MyTableName where ISNULL([boolfieldX],0) <> 1
select * from mytablename where [boolFieldX] is null And [boolFieldX] <> 1