IN运算符SQL
发布时间:2020-12-12 06:04:02 所属栏目:MsSql教程 来源:网络整理
导读:我有一个名为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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 安装sql server2008后再安装sql 2005找不到本地服务器的解决
- sql-server-2008 – “SQL server 2008标准”和“小型企业的
- sql-server – SQL Server – 为什么我的SPID在创建索引时会
- sql – Management Studio中的Resultset列宽度
- sql – 如何加快缓慢的UPDATE查询
- SQLSERVER2008 18456错误
- sql-server – SQL Server:启用没有SSMS的远程连接
- SQL Server 空值处理策略[推荐]
- sql-server – 重启SQL Server会加快速度吗?
- SQL Server 2008 数据库中创建只读用户的方法