nullを別の値に置き換えたい場合は、NVL関数またはNVL2関数を使用します。
構文
nullの場合のみ別の値に置き換える場合は、NVLを使用します。
NVL(<対象値>, <NULLの場合の値>)
nullの場合とnullでない場合それぞれで別の値に置き換える場合は、NVL2を使用します。
NVL2(<対象値>, <NULLでない場合の値>, <NULLの場合の値>)
サンプルソース
CD | NAME | DEPT |
---|---|---|
001 | 鈴木 | 総務部 |
002 | 田中 | 開発部 |
003 | 伊藤 | null |
004 | 山下 | null |
005 | 武田 | 営業部 |
例)nullの場合は'所属なし'と表示する
1 2 3 4 5 |
SELECT name ,nvl(dept, '所属なし') AS dept FROM tbl_syain; |
- 結果
- name dept ----- ------------------ 鈴木 総務部 田中 開発部 伊藤 所属なし 山下 所属なし 武田 営業部
例)nullの場合は'未所属'、nullでない場合は'所属済み'と表示する
1 2 3 4 5 |
SELECT name ,nvl2(dept, '所属済み', '未所属') AS dept FROM tbl_syain; |
- 結果
- name dept ----- ------------------ 鈴木 所属済み 田中 所属済み 伊藤 未所属 山下 未所属 武田 所属済み
メモ
- 引数に指定する値の型は合わせる必要があります。
(例えば、NVLの第1引数には文字型、第2引数には数値型というのはNGです) - NVL/NVL2関数は、SELECT部以外のWHERE部などにも指定可能でます。
- NVL2はSQL文では使用できますが、ストアド(PL/SQL)では使用できないのでご注意ください。(PLS-00201エラーが発生します。)