sql-server - 为什么具有错误谓词的聚合查询会返回结果?有没有办法不得到结果?
问题描述
为什么这个查询返回一个结果集?
SELECT SomeString = 'Total' ,SUM(1) WHERE 1 = 2
我有一个类似的查询,由于谓词为假,我假设它不应该返回结果。这是故意的吗?如果是这样,我怎么能没有查询返回的结果?
解决方案
聚合查询总是每组返回一行,没有 GROUP BY 则返回一行。
如果您不希望返回一行,您可以使用非聚合查询,例如
SELECT SomeString = 'Total',
SUM(1) over() total
WHERE 1 = 2
或像这样的子查询
with q as
(
SELECT SomeString = 'Total', SUM(1) total
WHERE 1 = 2
)
select *
from q
where total is not null
推荐阅读
- html - 如何正确设置表格中 tbody 元素的背景颜色?
- android - Flutter WebView App 不响应我的触摸事件
- javascript - 当我更改状态时,为什么排序不能正常工作?
- angular - Why does select dropdown show empty default in Angular 8 after http call?
- python - 如何将张量对象传递给接受数据类型为 uint 的图像的函数
- python-3.x - Discord.py 发送空白 .txt 文件
- java - ClassNotFoundException: javax.annotation.Generated with JDK 11
- python - 从 main.kv 文件 KivyMD 获取 id
- scala - 基于 OR 条件在 spark scala 中加入两个数据帧
- java - SingleInstanceListener 不适用于 OpenJDK 1.8 和 IcedTea webstart