Oracle DB の NVL() と NVL2() の違い
Oracle には NVL()
と NVL2()
という2つの関数があったので、違いを見てみた。
SELECT
NVL(NULL, 'NULL!'),
NVL2(NULL, 'NOT NULL!', 'NULL!')
FROM DUAL;
NVL()
は第1引数が NULL の時に第2引数を返すモノ。第1引数が NULL でなければ、第1引数がそのまま返される。NVL2()
は第1引数を評価し、NULL でなければ第2引数、NULL なら第3引数を返す。