От страницата с документация относно агрегатните функции:
Така че, ако искате да гарантирате върната стойност, приложете COALESCE
към резултата от SUM
, а не към неговия аргумент:
SELECT COALESCE(SUM(capacity), 0) …
Що се отнася до „подвъпроса“ на Oracle, добре, не можах да намеря понятие за NULL на официалната страница с документи (този за 10.2 , по-специално), но два други източника са недвусмислени:
Тоест, не е необходимо да прилагате NVL към capacity
. (Но както при COALESCE
в PostgreSQL може да искате да го приложите към SUM
.)