mssql sqlserver in 關鍵字在值為null的應用舉例

来源:https://www.cnblogs.com/lairui1232000/archive/2018/08/01/9401810.html
-Advertisement-
Play Games

轉自:http://www.maomao365.com/?p=6873 摘要: 下文通過案例分析in 關鍵字在值為null的應用舉例, 分析出not in關鍵字在null值產生的異常信息 如下所示: 通過以上測試,我們可以看出not in 查詢關鍵字如果子表中存在空值,則無法查詢出任何記錄,會導致異 ...


轉自:http://www.maomao365.com/?p=6873

摘要:
下文通過案例分析in 關鍵字在值為null的應用舉例,
分析出not in關鍵字在null值產生的異常信息
如下所示:

CREATE TABLE testA(keyId INT)
CREATE TABLE testB(keyId INT)
GO
INSERT INTO testA(keyId) VALUES (1)
INSERT INTO testA(keyId) VALUES (2)
INSERT INTO testA(keyId) VALUES (3)
GO
INSERT INTO testB(keyId) VALUES (1)
INSERT INTO testB(keyId) VALUES (2)
INSERT INTO testB(keyId) VALUES (4)
INSERT INTO testB(keyId) VALUES (NULL)
GO
 SELECT * FROM testA WHERE keyId IN (SELECT keyId FROM testB)
-----輸出------
/*
keyId
1
2
*/
 SELECT * FROM testA WHERE keyId not IN (SELECT keyId FROM testB)
------無輸出記錄-----
/*
keyId
*/
INSERT INTO testA VALUES (NULL) ---在testA表中插入空值
SELECT * FROM testA WHERE EXISTS(
    SELECT null  FROM testB WHERE testA.keyId=testB.keyId    
)
----輸出----
/*
keyId
1
2
*/
SELECT * FROM testA WHERE not  EXISTS(
    SELECT null  FROM testB WHERE testA.keyId=testB.keyId    
)
/*
keyId
3
NULL
*/
SELECT * FROM testA WHERE testA.keyId NOT in (
    SELECT testB.keyId FROM testB WHERE testB.keyId IS NOT NULL    
)

drop table testA
drop table testB

 

通過以上測試,我們可以看出not in 查詢關鍵字如果子表中存在空值,則無法查詢出任何記錄,會導致異常產生,
需使用not exists獲取相應的空值信息


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • hadoop部署的若幹問題解決 1 清理系統記憶體cached方法,解決Out of memory問題 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting 2018-07-31 10:34:58,344 FATAL org... ...
  • 該文章是基於 Hadoop2.7.6_01_部署 進行的 Flume官方文檔:FlumeUserGuide 常見問題:記flume部署過程中遇到的問題以及解決方法(持續更新) 1. 前言 在一個完整的大數據處理系統中,除了hdfs+mapreduce+hive組成分析系統的核心之外,還需要數據採集、 ...
  • innodb為實現MVCC所使用的內部快照,RR(REPEATABLE READ)隔離級別下在第一次查詢時創建read view,RC(READ COMMITTED)隔離級別下會在每次查詢時創建read view以下測試在RR隔離級別下,資料庫版本為5.7.201. select * from ta ...
  • 1. innodb在不同隔離級別下的一致性讀及鎖的差異 不同的隔離級別下,innodb處理sql 時採用的一致性讀策略和需要的鎖是不同的,同時,數據恢復和複製機制的特點,也對一些sql的一致性讀策略和鎖策略有很大影響。對於許多sql, 隔離級別越高,innodb給記錄集的鎖就越嚴格(龍其是使用範圍條 ...
  • 項目中使用最多的就是oracle資料庫了,在實際的開發中書寫SQL時遇到過許多錯誤,總結一下 ...
  • 上面兩篇是安裝和連接,這裡寫一下碰到的問題,安裝後使用SQL Developer連接出現ORA-12541:TNS:無監聽程式。網上搜了一下是安裝的Oracle中自帶的JDK是32位,而程式中使用的SQL Developer是64位不匹配所以不能用, 需要重新下載JDK版本配置一下,這是一種方式。我 ...
  • -- Author: Jackie Law-- Create date: 2018-08-01-- Description: 獲取時間-- Create FUNCTION f_Get_DateTime( @time datetime ,@timeType varchar(10) = 'DMIN')R ...
  • 我裝的版本是Oracle11,64位,直接網上下載即可。安裝過程中也出現了一些坑,現在整理了一下。 1.下載的目錄和安裝的目錄最好放到英文目錄下,別放到中文或者特殊字元的文件夾中,點擊setup.ext直接運行 2.第二步:配置安全更新:本步可將自己的電子郵件地址填寫進去(也可以不填寫)。取消下麵的 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...