(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;


NVL

NVL2

COALESCE