回答

收藏

为什么值永远不会不为null?[复制]

技术问答 技术问答 211 人阅读 | 0 人回复 | 2023-09-12

当我得到不同的记录计数时,出现了这个问题,我认为这是同样的查询,一个使用not in where约束,另一种使用a left join。notin约束中的表有一个空值(错误数据),导致查询返回计数为0的记录。我明白为什么,但我可以用一些帮助来完全理解这个概念。
' c0 H1 Z5 ?' Q3 `6 i简单来说,为什么查询?A返回结果而B不返回结果?+ `$ D! [/ d% `0 ]- a* T( Q
A: select 'true' where 3 in (1,2,3,null)B: select 'true' where 3 not in (1,2,null)这是在SQL Server 2005。我还发现调用set ansi_nulls off导致B返回结果。* O$ d  R: K4 s2 t2 V2 ~
                                                                % {3 w6 V" I: P9 s1 U9 F
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则