3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【SQL】COALESCEで値が「NULL」だった場合に別の値を返す

Last updated at Posted at 2020-04-23

COALESCE関数とは

COALESCE(コアレス)とは、リストの最初の非NULL値を返します。非NULL値がない場合は、NULLを返す関数です。

例)


SELECT COALESCE('山田', '鈴木', '田中');
/*
 =>
 '山田'
*/

SELECT COALESCE(NULL, '鈴木', NULL);
/*
 =>
 '鈴木'
*/

SELECT COALESCE(NULL, NULL, '田中');
/*
 =>
 '田中'
*/

SELECT COALESCE(数値型の列, 0);
/*
 数値型の列の出力
 NULLが格納されている場合は0を返す
*/

COALESCEで「NULL」を別の値に置き換え

例1) ユーザーテーブル

名前 ポイント 性別
山田 200
鈴木 220 NULL
田中 250
SELECT 名前, ポイント, COALESCE (性別, 'この値はNULLです') AS 性別
FROM ユーザー

例1の結果

名前 年齢 性別
山田 200
鈴木 220 この値はNULLです
鈴木 250

例2) ユーザーテーブル

名前 ポイント 性別
山田 200
鈴木 220
田中 NULL
SELECT 名前, COALESCE (ポイント, 0) AS ポイント, 性別
FROM ユーザー

例2の結果

名前 年齢 性別
山田 200
鈴木 220
田中 0

値がNULL際に任意の値を返したい時に使えます。COALESCEを使用する際は、RDBによって関数の動作が異なる場合があるので、お使いのRDBの公式サイトでCOALESCEの動作確認した方が良いですね。

参考

MySQL公式サイト
スッキリわかるSQL入門
【MySQL】最初に見つかった「NULLじゃない」値を返すCOALESCE()を使ってみる。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?