文字列関数

[Oracle] NULL以外の値が存在するかを確認するSQL(COALESCE)

NULL値以外の値のチェック

複数の値をチェックし、最初に見つかったNULL値以外の値を取得するには、COALESCE関数を使用します。
なお、全ての値がNULL値の場合はNULL値を返します。

COALESCE(値1, 値2, ・・・ )

※ すべて同じデータ型である必要があります。

それではサンプルを見てみましょう。
以下のようなpersonsテーブルがあります。

id name age
1 荒木 太郎 20
2 null 19
3 null null

name列とage列にNULL値以外が存在するかをチェックするSQLです。

上記を実行し、抽出された結果がこちらです。

COALESCE(name, TO_CHAR(age))
荒木 太郎
19
null

NULL値以外の値が存在した場合は、最初に見つかったNULL値以外の値を返し、両方の列がNULL値だった場合はNULL値を返しているのがわかります。

また、今回の例のように、引数に指定するデータ型が異なる場合は、型変換関数でデータ型を揃える必要がある点に注意してください。

[Oracle] 文字列関数 数値の文字列変換SQL(TO_CHAR)数値の文字列変換 フォーマット指定なしの変換 数値型から文字型へ変換するには、TO_CHAR関数を使用します。 TO_CH...

 
 
以上が、複数の値をチェックし、最初に見つかったNULL値以外の値を取得する関数「COALESCE」の使い方です。
ぜひ参考にしてみてください。