OracleでNullを別の値に置き換えて置換する方法はいくつかあります。
代表的な「NVL」と「CASE」を解説します。
1. NVLでNullを置換する
NVLの構文
NVL(対象文字列,変換したい文字列)
NVLの第1パラメータの値がNULLであれば、第2パラメータの文字列に変換します。NULLでなければ、第1パラメータの値を返します。
NVLの使用例
--NVLでscntのNULLを0に置換する SELECT NVL(scnt,0) FROM table1;
ここではNVLをつかってscnt列にNullがあれば0に置換しました。null以外の値はそのまま表示されます。
2. CASEでNullを置換する
--CASEでNULLを0に置換する SELECT CASE WHEN scnt IS NULL THEN 0 ELSE scnt END FROM table1;
ここではCASEをつかってscnt列にNullがあれば0に置換しました。null以外の値はそのまま表示されます。
NVLとCASEの違い
NVLとCASEがありますが、CASEの方が何かと便利ですね。
NVLはNULLの置換しかできませんが、CASEであればNULL以外でも置換できますし。CASEはSQLの中でも非常に便利な構文です。
以上、OracleでNullを別の値に置き換えるNVLとCASEでした。
コメント