NVL関数とCOALESCE関数 | Oracle Database SQL (1Z0-071-JPN)
NVL関数とCOALESCE関数とは
NVL関数およびCOALESCE関数とは、クエリ実行時に値が NULL であった場合に、代替となる別の値や計算式に置き換えて処理を継続させるための単一行関数です。 Oracle Database SQL (1Z0-071) の試験対策においては、NVL関数とCOALESCE関数の基本概念だけでなく、実務で使われる構文ルールや例外事項、エラーが発生する条件を正確に把握しておくことが非常に重要です。
具体例
社員の年収を計算する際、歩合率(commission_pct)がNULLの社員に対して salary * (1 + NVL(commission_pct, 0)) と計算することで、NULLによる計算結果のNULL化を防ぎ、正しく給与計算を行う例です。
SELECT
last_name,
salary,
NVL(commission_pct, 0) AS comm_nvl,
NVL2(commission_pct, 'SAL+COMM', 'SAL_ONLY') AS comm_nvl2,
COALESCE(commission_pct, salary * 0.1, 0) AS comm_coalesce
FROM employees;
もう少し詳しく