使用空分组集时,即使使用聚合函数,oracle也不会返回任何行。
例如,此查询没有 GROUP BY
条款:
select count(*)
from dual
where 1 = 0;
产量:
COUNT(*)
----------
0
鉴于此查询 GROUP BY ()
:
select count(*)
from dual
where 1 = 0
group by ();
不返回任何行。
如何强制oracle至少返回一行,即使查询包含 GROUP BY
条款?
你能用它吗 GROUPING SETS
, ROLLUP
, CUBE
或者其他的 GROUP BY
条款?
我想避免使用 UNION ALL
.
2条答案
按热度按时间i7uaboj41#
你可以用cte检查
group by
不返回任何行:kb5ga3dv2#
您可以编写条件聚合,而无需任何
WHERE
查询中的子句如下: