在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