ORDER BY での CASE
CoddyのSQLジャーニー「応用」セクションの一部 — レッスン 2/27。
CASE は SELECT のためだけのものではありません。列単体では表現できないカスタムルールで行を並べ替えるために、ORDER BY の中に配置することもできます。
SELECT name, status
FROM tickets
ORDER BY
CASE status
WHEN 'urgent' THEN 1
WHEN 'high' THEN 2
WHEN 'normal' THEN 3
ELSE 4
ENDより短い形式である CASE column WHEN value THEN ... に注目してください。これは WHEN column = value と同等です。より読みやすい方を使用してください。
チャレンジ
簡単利用可能なテーブルとカラム:
<strong>tasks</strong>:<strong>id</strong>,<strong>title</strong>,<strong>priority</strong>
title と priority を取得してください。'critical' が最初、次に 'high'、その次に 'low'、それ以外のすべてが最後になるように並べ替えます。同じ優先度の中では、title の昇順(アルファベット順)でソートしてください。
自分で試してみよう
SELECT title, priority
FROM tasks
ORDER BY
-- ...
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。