「JOINの際にNULLになる部分を代替値で埋められないか、、?」
本記事を見に来ていただいた方は、そのようなお悩みをお持ちかと思います。
その悩みを解決するのが、COALESCEになります。
本記事では、そのCOALESCEについて解説いたします!
COALESCEについてはじめに
COALESCEは、複数の式(またはカラム)のうち、最初にNULLでない値を返す関数です。
主にNULL値の代替値を指定するために使用されます。
例えば、JOINを行い対応する値がない場合にCOALESCEを使用することで、NULLでなく任意の値で埋めることができます。
以降でCOALESCEの基本構文と使用例をご紹介します!
COALESCE関数の基本的な構文と具体例
COALESCEの基本構文
COALESCE(expression1, expression2, expression3, ..., replacement_value)
expression1,expression2,expression3, …: 評価したい式やカラムのリストです。replacement_value: もしすべてのexpressionがNULLの場合に代わりに返される値です。
COALESCE関数の動作は、以下のようになります。
expression1がNULLでない場合、expression1の値が返されます。expression1がNULLであり、expression2がNULLでない場合、expression2の値が返されます。- それ以降も同様に、
expression1,expression2,expression3, …expressionの順に評価し、最初にNULLでない値が見つかった場合、その値が返されます。 - もしすべての
expressionがNULLである場合、replacement_valueの値が返されます。
COALESCEの具体例
以下が具体例となります。
SELECT COALESCE(salary, bonus, 0) AS adjusted_salary
FROM employees
このクエリでは、salaryがNULLでない場合はsalaryの値が表示され、NULLである場合はbonusの値が表示されます。さらに、bonusもNULLである場合は0が表示されます。
このように、複数要素を指定することが可能です。
また、NULLを代替値で埋める関数にはNVL関数もあります。
DBMSによってはNVLの方が使われることがあるので、使用するデータベースに合わせて適切な関数を選択する必要があります。
NVLについても以降で解説いたします!

ここまで読んでいただきありがとうございます。
SQLでは、COALESCEに限らず様々なケースで疑問を感じるかと思います。
「このようなケースの場合はどのように記述したらよいか、、」
「データサイエンティストになるにはどのように効率的に学習していったらよいか?」
など自己学習に不安がありましたら、以下のスクールのご活用もご検討ください!
NVLの基本構文と使用例
NVL関数の基本的な構文
NVL(expression, replacement_value)
expression: 評価したい式やカラムです。replacement_value: もしexpressionがNULLの場合に代わりに返される値です。
NVL関数の動作は、以下のようになります。
- もし
expressionがNULLでない場合、expressionの値が返されます。 - もし
expressionがNULLの場合、replacement_valueの値が返されます。
NVL関数の具体例
以下は、テーブルemployeesにおいて、salaryカラムがNULLである場合に代わりに0を表示するSQLクエリの例です。
SELECT NVL(salary, 0) AS adjusted_salary
FROM employees
このクエリでは、salaryがNULLである場合にadjusted_salaryという名前のカラムに0が表示されます。NULLでない場合は、元のsalaryの値が表示されます。
他のデータベース管理システム(DBMS)では、NVLの代わりに異なる関数が使用されることがあります。
例えば、MySQLではCOALESCE関数が同様の機能を提供します!
参考にCOALESCE関数についても解説いたします。
SQL参考本
SQL学び始めの時はこちらの本を参考にしていました。
DBやテーブルの構造から、よく使う関数などがまとめられています。基礎を身につけたい方におススメです。
NULLの代替値を複数指定できるCOALESCEまとめ
以上が、複数要素を指定しNULLでない値から返すことのできるCOALESCE関数となります。COALESCEは、複数の式を順番に評価することできる点でNVLと異なります。
COALESCEとNVLは使用するデータベースに合わせて適切な関数を選択してください!
SQL関連記事
そのほか、SQL関連記事をこちらにまとめておりますのでご参考ください。
> Coffee Tech Blog SQL関連記事

もしIT業界への転職でお困りでしたら、下記サービスのご活用をご検討ください!
私は転職の際にGeeklyを活用させて頂き、ご縁を頂くことができました。
参考になれば幸いです☕




コメント