【SQL】NVLでNULLの代わりの値を指定する

SQL
※本ページにはプロモーションが含まれます
※本ページにはプロモーションが含まれます
スポンサーリンク

NULL値をあつかうNVLについてはじめに

NVL関数は、指定された式がNULLである場合に代替の値を返すことができます。

この関数は、特に数値や文字列のデータ型に対して有用になります。

NVLの基本構文と使用例

NVL関数の基本的な構文

NVL(expression, replacement_value)
  • expression: 評価したい式やカラムです。
  • replacement_value: もしexpressionがNULLの場合に代わりに返される値です。

NVL関数の動作は、以下のようになります。

  1. もしexpressionがNULLでない場合、expressionの値が返されます。
  2. もし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関数についても解説いたします。

プログラムの環境構築からわからない、、」「データサイエンティストになるには?」など自己学習に不安がありましたら、以下のスクールのご活用をご検討ください!

スタアカTech AcademyCode Lesson
データサイエンティストを目指すことに特化したスクールです。現役エンジニアから学べるオンラインに特化したプログラミングスクールです。転職の支援はもちろん、副業に活かせるスキルの習得から、副業の仕事紹介まで寄り添います。「未経験から独学でプロを目指す」というコンセプトのもと、実践的なコーディング学習ができるプログラミング学習サービスです。
★コース例
・データサイエンティスト概要コース
・Python基礎コース
・データ加工集計可視化コース
・統計学概要コース
・SQL基礎コース
 など
コース例
・Pythonコース

・AIコース
・データサイエンスコース
★提供スキル
HTML, CSS, JavaScript(DOM), React, Vue, TypeScript, Java, PHP, Python, SQL

NULLの代替値を複数指定できるCOALESCE

SQLにおいて複数の式(またはカラム)のうち、最初にNULLでない値を返す関数です。
COALESCE関数は、主にNULL値の代替値を指定するために使用されます。

NVLと同様に、主にOracle Databaseで使われる関数ですが、他のデータベース管理システム(DBMS)でも一般的にサポートされています。

COALESCE関数の基本的な構文と具体例

COALESCEの基本構文

COALESCE(expression1, expression2, expression3, ..., replacement_value)
  • expression1, expression2, expression3, …: 評価したい式やカラムのリストです。
  • replacement_value: もしすべてのexpressionがNULLの場合に代わりに返される値です。

COALESCE関数の動作は、以下のようになります。

  1. expression1がNULLでない場合、expression1の値が返されます。
  2. expression1がNULLであり、expression2がNULLでない場合、expression2の値が返されます。
  3. それ以降も同様に、expression1, expression2, expression3, …expressionの順に評価し、最初にNULLでない値が見つかった場合、その値が返されます。
  4. もしすべてのexpressionがNULLである場合、replacement_valueの値が返されます。

COALESCEの具体例

以下は、テーブルemployeesにおいて、salaryカラムがNULLである場合に代わりにbonusカラムの値を表示するSQLクエリの例です。

SELECT COALESCE(salary, bonus, 0) AS adjusted_salary
FROM employees

このクエリでは、salaryがNULLでない場合はsalaryの値が表示され、NULLである場合はbonusの値が表示されます。さらに、bonusもNULLである場合は0が表示されます。

COALESCEは、NVLとは異なり、複数の式を順番に評価することができる点が異なります。これにより、より柔軟に複数の代替値を扱うことができます。ただし、DBMSによってはNVLの方が使われることがあるので、使用するデータベースに合わせて適切な関数を選択してください。

SQL参考本

SQL学び始めの時はこちらの本を参考にしていました。

DBやテーブルの構造から、よく使う関数などがまとめられています。基礎を身につけたい方におススメです。

NULL値をあつかうNVLまとめ

以上が、値がNULLの場合に代替値を返すことができるNVL関数となります。
NULLの値を任意の値で埋めたい際に有用となります。

また、複数要素を指定しNULLでない値から返すことのできるCOALESCE関数も似たケースの際に有用となります。

SQL文法関連記事

そのほか、SQL関連記事をこちらにまとめておりますのでご参考ください。
Coffee Tech Blog SQL関連記事

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

Geekly転職ドラフト
IT・WEB・ソーシャルゲーム業界を専門とした転職支援サービスです。ギークリー独占の求人案件も扱っており、大手サービスに劣らないサービス力を誇ります。転職ドラフトは年収UP率94.3% / 平均年収UP額148.4万円と圧倒的な年収UP率を誇るイベント型のエンジニア向け転職サービスです。毎月1回開催され、IT/Web系企業を中心に、厳選された約240社からダイレクトスカウトを受け取ることができます。

参考になれば幸いです☕

コメント

タイトルとURLをコピーしました