🏧

[SQL]COALESCE関数 とは(備忘録)

2024/04/29に公開

1.COALESCE関数 とは

指定したカラムの値がNULLの場合、NULLを別の値に置換する際に使用します。
カラムは何個も指定が可能です。

COALESCE関数の書き方の例
/*
    カラム1の値がNULLの場合、カラム2の値に置換
    カラム1・2共にNULLの場合、末尾で指定した値に置換
*/
COALESCE(カラム1, カラム2, NULLを置換したい値)

2. サンプルプログラム

〇例1:関数内のカラムが1つの場合

Sample_1.sql
CREATE TABLE result (
	id INT AUTO_INCREMENT NOT NULL,
	name VARCHAR(10) NOT NULL,
	score INT(2),
	PRIMARY KEY (id)
);

INSERT INTO result (name, score)
VALUES ('鈴木', 80),('田中', 75),('大谷', 85),('佐藤', NULL);

SELECT
    name
    -- 0に置換
    ,COALESCE(score, 0) AS score
FROM result
;

実行結果

name score
鈴木 80
田中 75
大谷 85
佐藤 0

〇例2:関数内のカラムが複数の場合

Sample_2.sql
CREATE TABLE result (
	id INT AUTO_INCREMENT NOT NULL,
	name VARCHAR(10) NOT NULL,
	score1 INT(2),
	score2 INT(2),
	PRIMARY KEY (id)
);

INSERT INTO result (name, score1, score2)
VALUES ('鈴木', 80, 70),('田中', 65, NULL),('大谷', NULL, 75),('佐藤', NULL, NULL);

SELECT
    name
    -- 0に置換
    ,COALESCE(score1, score2, 0) AS score
FROM result
;

実行結果

name score
鈴木 80
田中 65
大谷 75
佐藤 0

3.その他

実行環境

Discussion