SQL 之 SQL server 中 遇到字段的值为null 遇到的坑
SQL server 中,如果查询或筛选的条件中,某字段的值为NULL,如何处理?又有哪些坑需要避免呢?
直接上坑 😃:
-
NULL 与其他任何类型进行逻辑判断:
【解释】:- NULL表示值未知,和空字符(空白)和0 不一样;
- NULL和NULL或其他任何值做逻辑判断的时候,返回的值都是UNKNOWN;
-
NULL 在in 或 not in 语句中,比如
where classNum in (null,1)
, 或where classNum not in (1,2)
,where classNum not in (1,2,null)
:where classNum in (null,1)
是无法筛选出null的结果,但不会报错;where classNum not in (1,2)
,就算表中包含classNum is null
的记录,但是同样也不会筛选出来
where classNum not in (1,2,null)
,不会报错,但是不会查出来任何结果,如果in语句里面是一个子查询,要避免查出来是null的结果,否则整个查询是没有结果的
-
在where中查询为NULL的结果,
= NULL
(这个应该是一般人不会犯的错 😉:
【解释】:= NULL
这样查询不会报错,但是不会查出任何结果;- NULL 只是一个表示“没有值”的标记
正确使用方法:
- 若要在查询中测试空值,请在 WHERE 子句中使用 IS NULL 或 IS NOT NULL。
- 在 SQL 中存在第三个逻辑值:unknown。这有点类似于我们平时所说的:对、错、不知道:
-
逻辑值有 true, false, unknown:
AND 的情况:false > unknown > true
OR 的情况:true > unknown > false -
与and和or运算符的逻辑运算结果:
-
参考链接:
本文来自博客园,作者:77工作室,转载请注明原文链接:https://www.cnblogs.com/z7luv/p/16363980.html
如果您觉得阅读本文对您有帮助,请点击一下右下方的推荐按钮,您的推荐将是我写作的最大动力!版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。
标签:
SQL server
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)