雑多なブログ

音楽や語学、プログラム関連の話題について書いています

MySQL: CASE式

SQLのCASE式の構文をいつも忘れてしまうので、
構文について再確認してみた。

目次

構文1

CASE value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END CASE

例) ユーザー定義変数の使用

set @num = 3;
select case @num
    when 1 then 'A'
    when 2 then 'B'
    when 3 then 'C'
    else '-'
end  as value

例) テーブルのselectでの使用

select case num
    when 1 then 'A'
    when 2 then 'B'
    when 3 then 'C'
    else '-'
end  as value
from table

構文2

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE

例) ユーザー定義変数の使用

set @num = 3;
select case
   when @num = 1 then 'A'
   when @num = 2 then 'B'
   when @num >= 3 then 'C'
   else '-'
end as value

例) テーブルのselectでの利用

select case
   when num = 1 then 'A'
   when num = 2 then 'B'
   when num >= 3 then 'C'
   else '-'
end as value
from table

参考情報

dev.mysql.com