我发现查询存在一些问题,该查询返回表中满足特定条件的所有记录的字段总和.我希望在没有记录的情况下收到"没有找到记录",但我收到的结果是空的.
SQL> SELECT * FROM DUAL WHERE 1=2;
no rows selected
SQL> SELECT SUM(dummy) FROM DUAL WHERE 1=2;
SUM(DUMMY)
----------
SQL>
Run Code Online (Sandbox Code Playgroud)
在这种情况下有没有办法不收到任何记录?
Gar*_*ers 19
"当没有记录时,我希望收到"没有找到记录",但我收到的结果是空的."
然后做
SELECT SUM(dummy) FROM DUAL WHERE 1=2 HAVING COUNT(*) > 0
Run Code Online (Sandbox Code Playgroud)
也就是说,指定您只想返回已考虑行的摘要.
SELECT SUM(dummy) FROM DUAL WHERE 1=2 HAVING SUM(dummy) IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
类似,但是如果只有dummy为null的行,则COUNT(*)将返回摘要行,而后者则不会.
这个怎么样:
select my_sum
from
(SELECT SUM(dummy) as my_sum FROM DUAL WHERE 1=2)
where
my_sum is not null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16597 次 |
| 最近记录: |