当前位置: 代码网 > it编程>数据库>MsSqlserver > SQL中not in与null值的具体使用

SQL中not in与null值的具体使用

2024年05月18日 MsSqlserver 我要评论
a not in b的原理是拿a表值与b表值做是否不等的比较, 也就是a != b. 在sql中, null是缺失未知值而不是空值。当你判断任意值a != null时, 官方说, “you

a not in b的原理是拿a表值与b表值做是否不等的比较, 也就是a != b. 在sql中, null是缺失未知值而不是空值。

当你判断任意值a != null时, 官方说, “you cannot use arithmetic comparison operators such as =, <, or <> to test for null”, 任何与null值的对比都将返回null. 因此返回结果为否,这点可以用代码 select if(1 = null, ‘true’, ‘false’)证实.

举个例子

在这里插入图片描述

select id,case when p_id is null then 'root' 
when id not in (select p_id from tree) then 'leaf' end type
else 'inner' 
from tree

这种写法会导致leaf结果完全看不到

从上述原理可见, 当询问 id not in (select p_id from tree)时, 因为p_id有null值, 返回结果全为false, 于是跳到else的结果, 返回值为inner. 所以在答案中,leaf结果从未彰显,全被inner取代.

到此这篇关于sql中not in与null值的具体使用的文章就介绍到这了,更多相关sql not in与null值内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com