CASE 式
数値をグルーピングして文字列にしたり、数値を文字列に変換するときに使う
SQLでデータ抽出の場合以外は使わない
変換が必要なときはAPI側で変換する
NULLの挙動は確認する
ELSEを省略するとNULL
例: 顧客ごとのレンタル数
# CASEの場合
SELECT
c.first_name,
c.last_name,
CASE
WHEN active = 0 THEN 0
ELSE (
SELECT
COUNT(*)
FROM
rental r
WHERE
r.customer_id = c.customer_id
)
END rental_count
FROM
customer c;
# GROUP BYの場合
SELECT
c.first_name,
c.last_name,
COUNT(*) rental_count
FROM
customer c
INNER JOIN
rental r ON c.customer_id = r.customer_id
GROUP BY
c.customer_id;