MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLテーブルのデータ値にCOALESCE()関数を適用するにはどうすればよいですか?

MySQLテーブルのデータ値にCOALESCE()関数を適用するには、関数の引数として対象となる列名を指定します。COALESCE()関数は、引数として渡された複数の値の中から、最初に見つかったNULL以外の値を返す関数です。したがって、最初の列にNULL値が含まれている場合は次の列を、それもNULLであればさらにその次の列というように、NULL以外の値が見つかるまで順番に評価を行います。

サンプルテーブルの準備

ここでは、以下のような「employee」テーブルのデータを使って、COALESCE()関数の動作を確認してみます。

mysql> Select * from employee;
+----+------------+-------------+-----------+
| Id | First_Name | Middle_Name | Last_Name |
+----+------------+-------------+-----------+
| 1  | Advik      | NULL        | Jhamb     |
| 2  | Rahul      | Kumar       | Sharma    |
| 3  | Raman      | Singh       | Rajput    |
| 4  | Krishan    | Kumar       | Khurana   |
| 5  | Sachin     | Ramesh      | Tendulkar |
| 6  | NULL       | Kumar       | Gaurav    |
| 7  | NULL       | Singh       | Parmar    |
+----+------------+-------------+-----------+
7 rows in set (0.00 sec)

このテーブルでは、Id 6とId 7のレコードにおいてFirst_Name列がNULLになっている点に注目してください。

COALESCE()関数を適用したクエリ例

mysql> Select COALESCE(First_Name, Middle_Name, Last_Name) AS Name FROM Employee;
+---------+
| Name    |
+---------+
| Advik   |
| Rahul   |
| Raman   |
| Krishan |
| Sachin  |
| Kumar   |
| Singh   |
+---------+
7 rows in set (0.03 sec)

実行結果の解説

上記の例では、COALESCE()関数に「First_Name」「Middle_Name」「Last_Name」の3つの引数を渡しています。クエリの動作は以下のとおりです。

  • First_NameがNULLでない場合: First_Nameの値をそのまま返します。
  • First_NameがNULLの場合: 次の引数であるMiddle_Nameの値を返します。
  • First_NameとMiddle_Nameの両方がNULLの場合: Last_Nameの値を返します。
  • 3つの列すべてがNULLの場合: NULLを返します。

実際に、Id 6のレコードではFirst_NameがNULLのためMiddle_Nameの「Kumar」が、Id 7のレコードでは「Singh」がそれぞれ返されています。このように、NULL値を含む列を扱う際に、値が存在しない場合の代替値へ自動的にフォールバックさせたいケースで、COALESCE()関数は非常に便利です。

  1. MySQLでNULL値を0に置き換える方法:IFNULL関数の使い方を解説

    MySQLでクエリを実行した際にNULL値が返ってくる場合、IFNULL()関数を使うことで、NULLを別の値(ここでは0)に置き換えることができます。この記事では、実際にテーブルを作成し、NULL値を含むデータに対してIFNULL()を適用する手順を順番に解説します。サンプルテーブルの作成まず、テスト用のテーブルを作成します。Idカラムは自動採番の主キーとし、ValueカラムにはNULLを許容するように定義します。mysql> create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMAR

  2. MySQLでテーブルの単一行にNULL値が含まれているか確認する方法

    MySQLでテーブルの行内にNULL値が含まれているかどうかを確認するには、「IS NULL」演算子を使用します。WHERE句と組み合わせることで、特定のカラムがNULLである行を簡単に抽出できます。ここでは、実際にテーブルを作成し、NULL値を含む行を検索する手順を順番に見ていきましょう。 サンプルテーブルの作成 まず、以下のようにテーブルを作成します。 例 mysql> create table demo86 -> ( -> value1 varchar(20) -> , -> value2 varchar(20)