合計されたすべての値が null である場合にのみ、これらの両方の SUMS が NULL と評価される必要があります。
それはデフォルトでそうします。あなたの状態で交換0
するだけです。null
ELSE
09:43:30 SYSTEM@dwal> ed
Wrote file S:\spool\dwal\BUFFER_SYSTEM_65.sql
1 with t (x, y) as (
2 select null, 1 from dual union all
3 select null, 1 from dual union all
4 select null, 2 from dual
5 )
6* select sum(x), sum(case y when 1 then x else null end ) from t
09:43:40 SYSTEM@dwal> /
SUM(X) SUM(CASEYWHEN1THENXELSENULLEND)
---------- -------------------------------
Elapsed: 00:00:00.00
09:43:41 SYSTEM@dwal> 2
2* select null, 1 from dual union all
09:43:59 SYSTEM@dwal> c/null/1
2* select 1, 1 from dual union all
09:44:03 SYSTEM@dwal> /
SUM(X) SUM(CASEYWHEN1THENXELSENULLEND)
---------- -------------------------------
1 1
Elapsed: 00:00:00.01