在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题:
1.结果不准确2.查询性能低下
一、
在SQL Server中,Null值并不是一个值,而是表示特定含义,其所表示的含义是“Unknow”,可以理解为未定义或者未知,因此任何与Null值进行比对的二元操作符结果一定为Null,包括Null值本身。而在SQL Server中,Null值的含义转换为Bool类型的结果为False。
解决:
解决办法就是不使用Not In,而使用Not Exists作为替代。Exists的操作符不会返回Null,只会根据子查询中的每一行决定返回True或者False,当遇到Null值时,只会返回False,而不会由某个Null值导致整个子查询表达式为Null。
SQL_SERVER中不建议用NOT IN 和IN 的替代方案
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
一场数据架构变革正在来临
蔡芳芳
2021-12-21 10:54:01
解读数字化转型下的数据安全:AI正在开辟新的可能性
凌敏
2021-12-19 14:03:54
云原生数据库企业Cockroach Labs再获 2.73 亿美元融资,估值高达50亿美元
Tina
2021-12-16 15:18:50
数千个数据库、遍布全国的物理机,京东物流全量上云实录 | 卓越技术团队访谈录
褚杏娟
2021-12-16 10:38:55
前车之鉴:聊聊我在基础设施中掉过的坑
Mathew Duggan
2021-12-14 13:33:55
洞察数据库变革趋势,亚马逊云科技正在凭借这项技术改变着游戏规则
李冬梅
2021-12-10 16:53:54
MongoDB发布第三季度财报,云数据库收入增长加速
Tina
2021-12-09 15:33:57
MySQL探秘(四):InnoDB的磁盘文件及落盘机制
程序员历小冰
2021-12-08 12:33:52
Oracle 大佬离职,怒喷 MySQL “糟糕的数据库”
辛晓亮
2021-12-07 19:58:57
Jellyfish:为Uber最大的存储系统提供更节省成本的数据分层
Mohammed Khatib
2021-12-06 10:33:48
企业需要什么样的数据库,One Size Fits All?
张俊宝
2021-12-03 18:19:01
这个重要开源项目全靠一位低调的“怪老头”维护!他和比尔盖茨一样撑起了计算机世界
张健欣
2021-12-03 14:23:56
数据库事务的三个元问题
Zilliz
2021-12-03 10:33:52
一个 Babelfish ,看懂云数据库的发展方向
王一鹏
2021-12-01 18:43:50