NULL値以外の値のチェック
複数の値をチェックし、最初に見つかったNULL値以外の値を取得するには、COALESCE関数を使用します。
なお、全ての値がNULL値の場合はNULL値を返します。
COALESCE(値1, 値2, ・・・ )
※ すべて同じデータ型である必要があります。
それではサンプルを見てみましょう。
以下のようなpersonsテーブルがあります。
id | name | age |
---|---|---|
1 | 荒木 太郎 | 20 |
2 | null | 19 |
3 | null | null |
name列とage列にNULL値以外が存在するかをチェックするSQLです。
1 |
SELECT COALESCE(name, TO_CHAR(age)) FROM persons; |
上記を実行し、抽出された結果がこちらです。
COALESCE(name, TO_CHAR(age)) |
---|
荒木 太郎 |
19 |
null |
NULL値以外の値が存在した場合は、最初に見つかったNULL値以外の値を返し、両方の列がNULL値だった場合はNULL値を返しているのがわかります。
また、今回の例のように、引数に指定するデータ型が異なる場合は、型変換関数でデータ型を揃える必要がある点に注意してください。
[Oracle] 文字列関数 数値の文字列変換SQL(TO_CHAR)数値の文字列変換
フォーマット指定なしの変換
数値型から文字型へ変換するには、TO_CHAR関数を使用します。
TO_CH...
以上が、複数の値をチェックし、最初に見つかったNULL値以外の値を取得する関数「COALESCE」の使い方です。
ぜひ参考にしてみてください。