【Oracle】NVLでNullを置き換える【SQL】

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でした。

コメント