SQL文のCASE~WHEN~ELSEで条件分岐を実装する方法について、ソースコード付きで紹介します。
【CASEとは】条件分岐
SQLでは、CASE文を用いることで、「条件分岐」を実装できます。
書式
CASEを使うには「CASE」~「END」の間に条件分岐を記述します。
SELECT
[抽出するカラム名]
CASE
WHEN [条件①] THEN [条件①を満たした場合の表示内容]
WHEN [条件②] THEN [条件②を満たした場合の表示内容]
ELSE [いずれの条件も満たしていない場合の表示内容]
END As [表示内容のカラム名]
FROM [テーブル名];
【使用例】CASE文のサンプルコード
SELECT、INSERT、FROMでテーブルの作成、データの追加、要素の抽出をしてみます。
/* テーブルを作成 */
create table student(id int, class varchar(20), point int, rankId int);
/* テーブルにデータを追加 */
insert into student values(1, 'Archer', 90, 1);
insert into student values(2, 'Lancer', 75,2);
insert into student values(3, 'Saber', 60, 1);
insert into student values(4, 'Caster', 75, 2);
insert into student values(5, 'Asassin', 45, 3);
insert into student values(6, 'Berserk', 55, 3);
insert into student values(7, 'Ruler', 70, 1);
/* テーブルから全てのカラムを抽出 */
SELECT * FROM student;
/* 抽出結果
id class point rankId
1 1 Archer 90 1
2 2 Lancer 75 2
3 3 Saber 60 1
4 4 Caster 75 2
5 5 Asassin 45 3
6 6 Berserk 55 3
7 7 Ruler 70 1
*/
/* 得点に応じてレベルを決めて抽出 */
SELECT
class, point,
CASE
WHEN 80 <= point THEN 'Lv3'
WHEN 70 <= point THEN 'Lv2'
WHEN 60 <= point THEN 'Lv1'
ELSE 'Lv0'
END As Level
FROM student;
/*
class point Level
1 Archer 90 Lv3
2 Lancer 75 Lv2
3 Saber 60 Lv1
4 Caster 75 Lv2
5 Asassin 45 Lv0
6 Berserk 55 Lv0
7 Ruler 70 Lv2
*/
| - | 関連記事 |
|---|---|
| - | 【SQL文入門】基本的な使い方まとめ |

コメント