加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

IN运算符SQL

发布时间:2021-02-25 13:20:43 所属栏目:编程 来源:网络整理
导读:我有一个名为NUMS的表,个中包括一列n. 我在个中添补值1,2,3,4,5,null. 此刻一个查询 SELECT n FROM Nums WHERE n IN (1,null) 在这种环境下,我猜它已转换为 SELECT n FROM Nums Where n = 1 OR n = 2 OR n = null 我也将n与一个null值举办较量,该值应该发生未

我有一个名为NUMS的表,个中包括一列n.
我在个中添补值1,2,3,4,5,null.

此刻一个查询

SELECT n FROM Nums 
 WHERE n IN (1,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,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

[编辑] Thanx @Buckwad

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读