Sql server 未在SQL Server 2008的选择列表中选择Null

Sql server 未在SQL Server 2008的选择列表中选择Null,sql-server,sql-server-2008,sql-server-2008-r2,Sql Server,Sql Server 2008,Sql Server 2008 R2,有一个结构如下所示的表格。该表包含NULL值 用于选择NULL的查询 问题#1 问题2 但是,这两个查询都没有返回任何行 您只能使用IS NULL或IS NOT NULL将值与NULL进行比较,如下所示: select * from table where items1 IS NULL 您可以稍微改变一下行为,但不建议这样做。如需了解更多ifnormation,请参阅。如果不设置将ANSI_NULLS设置为OFF,则无法执行您尝试的操作。因为NULL在任何数据库中都是不同的东西。任何带有NU

有一个结构如下所示的表格。该表包含
NULL

用于选择
NULL的查询

问题#1

问题2


但是,这两个查询都没有返回任何行

您只能使用
IS NULL
IS NOT NULL
将值与
NULL
进行比较,如下所示:

select * from table where items1 IS NULL

您可以稍微改变一下行为,但不建议这样做。如需了解更多ifnormation,请参阅。

如果不设置
将ANSI_NULLS设置为OFF,则无法执行您尝试的操作。因为
NULL
在任何数据库中都是不同的东西。任何带有
NULL
的内容都将变为
NULL

例如

偶数NULL返回False

例如

试试这个:

select * from table where items1 is NULL

编辑:


这并不准确:如果您将
ANSI_NULLS
设置为
OFF
,您的答案将明显错误。您的问题似乎有一些答案。我强烈建议你做一些关于规范化的阅读和研究。当你需要物品时,你打算做什么?
select * from table where items1 IS NULL
 select NULL + 1  -- OUTPUT : NULL
 select NULL + 'test'  -- OUTPUT : NULL
select case when NULL=1 then 0 else 1 end  --   return false hence 1

select case when NULL=0 then 1 else 0 end  --   return false hence 0
select * from table where items1 is NULL
SET ANSI_NULLS  OFF

select * from table where items1=null