非IN子句和空值
这个问题出现时,我得到了不同的记录计数,我认为是相同的查询之一使用not in where约束和另一个约束left join..的桌子not in约束有一个空值(坏数据),这将导致该查询返回0条记录的计数。我有点理解为什么,但是我需要一些帮助来充分理解这个概念。
not in
where
left join
简单地说,为什么查询A返回一个结果而B不返回?
A: select 'true' where 3 in (1, 2, 3, null)B: select 'true' where 3 not in (1, 2, null)
这发生在SQLServer 2005上。我还发现set ansi_nulls off使B返回结果。
set ansi_nulls off
青春有我
繁花不似锦
冉冉说
相关分类