NVL関数がバージョンアップ?したNVL2関数があります。NVL2はOracleのコマンドで、以下の通りにNULL値を別の値に変換することができます。
構文:
NVL2(式, 値1, 値2)
式の値がNULL以外であれば値1を返し、NULLの場合は値2を戻す。
使用例:給料とボーナスの合計を求める
SELECT name, salary, bonus, NVL2(bonus, salary+bonus, salary)
name salary bonus NVL2(bonus, salary+bonus, salary)
————————————————————————————————-
Yamada 200000 100000 300000
Tanaka 150000 150000
Kawai 300000 130000 430000
salary+bonusのような演算でbonusがNULL値の場合はsalary+bonusは何の値も返しません。ですので、上記のようにNULL値を別の値に変換する必要があるのです。