SQLのCASE

いつも書き方を忘れるのでメモ。

SELECTでデータに保存されている値とは違った表示をしたい場合に使える。例えば、既婚者かどうかを数字でstatusに格納してある場合、そのまま出すとわかりにくい。
こんな場合にCASEを使ってわかりやすい文字列に置き換えてみる。

select name,
case status
	when 1 then 'Single'
	when 2 then 'Married'
end as status,
city
from users

このまま出すと

Taro | 1 | Tokyo
Hanako | 2 | Kanagawa
Yamada | 2 | Fukushima

これがCASE文を使うと↓のようになる

Taro | Single | Tokyo
Hanako | Married | Kanagawa
Yamada | Married | Fukushima