【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 )
查询结果
查询出来就发现会存在一条记录
正确的写法
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的时候,查询为空。
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!