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
- COALESCE
- NULLIF
- LNNVL
NVL :
NVL(expr1, expr2)
NVLを使用すると、クエリの結果でnull(空白として返される)を文字列に置き換えることができます。 expr1がnullの場合、NVLはexpr2を返します。 expr1がnullでない場合、NVLはexpr1を返します。
NVL2 :
NVL2(expr1, expr2, expr3)
NVL2を使用すると、指定された式がnullかnullでないかに基づいて、クエリによって返される値を判別できます。 expr1がnullでない場合、NVL2はexpr2を返します。 expr1がnullの場合、NVL2はexpr3を返します。
COALESCE
COALESCE(expr1, expr2, ...)
COALESCEは、式リストの最初のnull以外のexprを返します。少なくとも1つのexprはリテラルNULLであってはなりません。 exprのすべての出現がnullと評価された場合、関数はnullを返します。
NULLIF
NULLIF(expr1, expr2)
NULLIFはexpr1とexpr2を比較します。それらが等しい場合、関数はnullを返します。それらが等しくない場合、関数はexpr1を返します。 expr1にリテラルNULLを指定することはできません。
LNNVL
LNNVL(condition)
LNNVLは、条件の一方または両方のオペランドがnullである可能性がある場合に、条件を評価するための簡潔な方法を提供します。
OracleSQL関数の詳細