Menu
Coddy logo textTech

ORDER BYでのCASE

CoddyのSQLジャーニー「応用」セクションの一部。レッスン 2/27。

CASESELECT だけのものではありません。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と同等です。より読みやすい方を使ってください。

challenge icon

チャレンジ

簡単

利用可能なテーブルと列:

  • tasksidtitlepriority

titlepriority を返し、'critical'、次に 'high'、次に 'low' の順で並べ、それ以外は最後にしてください。同じ優先度の場合は、title のアルファベット順で並べ替えてください。

自分で試してみよう

SELECT title, priority
FROM tasks
ORDER BY
    -- 下のプレースホルダーの並び順を、CASE式に置き換えて
    -- タスクの説明どおりに行をランク付けし、同点の場合はアルファベット順でタイを解消する
    id
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

応用のすべてのレッスン

自分で練習してみよう: SQLプレイグラウンド