🏧
[SQL]COALESCE関数 とは(備忘録)
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