NVL(стойност, по подразбиране) е функцията, която търсите.
select type, craft, sum(NVL(regular, 0) + NVL(overtime, 0) ) as total_hours
from hours_t
group by type, craft
order by type, craft
Oracle има 5 функции, свързани с NULL:
- NVL
- NVL2
- СЛИВАНЕ
- NULLIF
- LNNVL
NVL :
NVL(expr1, expr2)
NVL ви позволява да замените null (върнато като празно) с низ в резултатите от заявка. Ако expr1 е нула, тогава NVL връща expr2. Ако expr1 не е нула, тогава NVL връща expr1.
NVL2 :
NVL2(expr1, expr2, expr3)
NVL2 ви позволява да определите стойността, върната от заявка въз основа на това дали даден израз е нулев или не. Ако expr1 не е нула, тогава NVL2 връща expr2. Ако expr1 е нула, тогава NVL2 връща expr3.
СЛИВАНЕ
COALESCE(expr1, expr2, ...)
COALESCE връща първия ненулев израз в списъка с изрази. Поне един израз не трябва да е литералът NULL. Ако всички поява на expr се оценяват на null, тогава функцията връща null.
NULLIF
NULLIF(expr1, expr2)
NULLIF сравнява expr1 и expr2. Ако са равни, тогава функцията връща null. Ако те не са равни, тогава функцията връща expr1. Не можете да посочите литерала NULL за израз1.
LNNVL
LNNVL(condition)
LNNVL предоставя кратък начин за оценка на условие, когато един или и двата операнда на условието може да са нулеви.
Повече информация за Oracle SQL функции