作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为 NUMS 的表,其中有一列 n。
我在其中填充值 1,2,3,4,5,null 。
现在是一个查询
SELECT n FROM Nums
WHERE n IN (1, 2, null)
在这种情况下,我猜它已转换为
SELECT n FROM Nums
Where n = 1 OR n = 2 OR n = null
我还将 n 与一个 null 值进行比较,它应该产生未知并且它应该返回一个空集。但是它返回 1,2(null 不返回,尽管包含在 IN 运算符中)
现在是一个查询
SELECT n FROM Nums WHERE n NOT IN(1, 2, null)
...转换为:
SELECT n FROM Nums
Where n!=1 AND n!=2 AND n!=null
我上面所说的在这里有效,它没有返回任何东西。
谁能详细解释发生了什么。
最佳答案
这是因为 null = null
始终为 false 用于 null 的运算符是 IS
或 IS NOT
您可以使用下面的查询来获得预期的输出
SELECT n FROM Nums WHERE n IN (1,2) OR n IS NULL
[编辑]谢谢@Buckwad
关于sql - IN 运算符 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2197736/
我是一名优秀的程序员,十分优秀!