NVL(wartość, wartość domyślna) to funkcja, której szukasz.
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 ma 5 funkcji związanych z NULL:
- NVL
- NVL2
- POŁĄCZENIE
- NULLIF
- LNNVL
NVL :
NVL(expr1, expr2)
NVL umożliwia zastąpienie wartości null (zwracanej jako puste) ciągiem w wynikach zapytania. Jeśli wyr1 ma wartość null, to NVL zwraca wyr2. Jeśli wyrażenie1 nie jest puste, NVL zwraca wyrażenie1.
NVL2 :
NVL2(expr1, expr2, expr3)
NVL2 pozwala określić wartość zwracaną przez zapytanie na podstawie tego, czy określone wyrażenie ma wartość null, czy nie. Jeśli wyr1 nie jest puste, to NVL2 zwraca wyr2. Jeśli wyr1 jest puste, to NVL2 zwraca wyr3.
POŁĄCZENIE
COALESCE(expr1, expr2, ...)
COALESCE zwraca pierwsze niezerowe wyrażenie z listy wyrażeń. Co najmniej jedno wyrażenie nie może być literałem NULL. Jeśli wszystkie wystąpienia expr mają wartość null, funkcja zwraca wartość null.
NULLIF
NULLIF(expr1, expr2)
NULLIF porównuje wyr1 i wyr2. Jeśli są równe, funkcja zwraca wartość null. Jeśli nie są równe, funkcja zwraca wyrażenie1. Nie możesz określić literału NULL dla wyrażenia 1.
LNNVL
LNNVL(condition)
LNNVL zapewnia zwięzły sposób oceny warunku, gdy jeden lub oba operandy warunku mogą mieć wartość NULL.
Więcej informacji o funkcjach Oracle SQL