null有哪些常见的意思?(如何正确理解 SQL 中的 NULL)( 二 )
但如果把语句再改成下面这样呢?
复制代码
SELECT * FROM SOME_TABLEWHERE NOT(1 = NULL)数据库首先计算 1=NULL,它不知道 1 是否等于 NULL,因为它不知道 NULL 的值是什么 。
所以,这个计算不会返回 true,也不会返回 false,它会返回一个 NULL 。
接下来,NOT() 会继续解析上一个计算返回的结果 。
当 NOT() 遇到 NULL,它会生成另一个 NULL 。未知的相反面是另一个未知 。
所以,对于这两个查询:
复制代码
SELECT * FROM SOME_TABLEWHERE NOT(1 = NULL)和
复制代码
SELECT * FROM SOME_TABLEWHERE 1 = NULL都不会返回数据,尽管它们是完全相反的 。
NULL 和 NOT IN如果我有这样的一个查询语句:
复制代码
SELECT * FROM SOME_TABLEWHERE 1 IN (1, 2, 3, 4, NULL)很显然,WHERE 返回 true,这个语句将返回数据,因为 1 在括号列表里是存在的 。
但如果这么写:
复制代码
SELECT * FROM SOME_TABLEWHERE 1 NOT IN (1, 2, 3, 4, NULL)很显然,WHERE 返回 false,这个查询不会返回数据,因为 1 在括号列表里存在,但我们说的是“NOT IN” 。
但如果我们把语句改成这样呢?
复制代码
SELECT * FROM SOME_TABLEWHERE 5 NOT IN (1, 2, 3, 4, NULL)这里的 WHRE 不会返回数据,因为它的结果不是 true 。数字 5 在括号列表里可能不存在,也可能存在,因为当中有一个 NULL 值(数据库不知道 NULL 的值是什么) 。
这个 WHERE 会返回 NULL,所以整个查询不会返回任何数据 。
希望你们现在都清楚该怎么在 SQL 语句中处理 NULL 值了 。
- 谷爱凌领衔,中国雪上项目冬奥会有多个夺金点
- 冰丝带将产生14金 宁忠岩有望改写中国男子速滑史
- 河南许昌:所有人员非必要不离市
- 新华社:恒大问题处置迈出关键一步,有利于维护各方权益
- 大爷大妈硬核相亲火爆出圈,有些甚至成了年轻网友的下饭剧
- 冬奥鲜探8|这个场馆里没有一处门槛,将最佳观赛席留给残障人群
- 大爷大妈硬核相亲节目火爆出圈 有大爷已参加过三次
- 河北工程大学回应疑似有学生虐猫:学校高度重视
- 唐山面包车大雾中冲入河里 6人遇难 事发时当地有大雾
- 大妈上海坐拥90套房106个车位?有人去查这事儿了