【DB2】在使用EXISTS時,查詢結果中包含聚合函數,一個不注意就會犯錯的坑


需求描述

現在需要通過EXISTS中的語句來控制查詢結果是否存在

第一次實現SQL

SELECT 1  AS ID,SUM(1)  FROM
(SELECT ID,NAME FROM (VALUES(1,'AA'),(2,'BB')) AS B(ID,NAME))
WHERE EXISTS
(SELECT 1 FROM SYSIBM.DUAL WHERE 1=2 )

查詢結果

image

查詢出來就發現會存在一條記錄

正確的寫法

SELECT * FROM
(SELECT 1  AS ID,SUM(1)  FROM
(SELECT ID,NAME FROM (VALUES(1,'AA'),(2,'BB')) AS B(ID,NAME))
)  WHERE EXISTS
(SELECT 1 FROM SYSIBM.DUAL WHERE 1=2 )


只有通過這樣才能 控制數據,當EXISTS為FLASE的時候,查詢為空。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM