(SQL)NVL・NVL2・COALESCE 関数
試験対策用
[NVL関数]
NVL関数は値がNULL値であった場合に、別の値を返す関数
使用法は以下の通り
NVL(式1, 式2)
第1引数の値がNULL値の場合、
第2引数の値を返します。第1引数の値がNULL値でなければ、
そのまま第1引数の値を返す
SELECT employee_id, employee_name, NVL(salary, 0) FROM employees WHERE employee_id IN (1017, 1018, 1019);
[NVL2関数]
NVL2関数は値がNULL値か否かを調べ、
NULL値以外の場合は値A、NULL値の場合は値Bを返す関数
使用法は以下の通り
NVL2(式1, 式2, 式3)
第1引数の値がNULL値以外の場合、第2引数の値を返す
第1引数の値がNULL値の場合、第3引数の値を返す
SELECT salary, NVL2(salary, 1, 0) FROM employees;
[COALESCE関数]
COALESCE関数は引数の値を判定し、
最初に見つかったNULL値以外の値を返す関数です。
使用法は以下の通りです。
COALESCE(式1, 式2 [, 式3 ...])
引数に指定された式全てがNULL値の場合、COALESCE関数はNULL値を返します。
SELECT commission, salary, employee_id,
COALESCE(commission, salary, employee_id)
FROM employees
WHERE employee_id >= 1016;