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

チャレンジ

簡単

利用可能なテーブルとカラム:

  • <strong>tasks</strong>: <strong>id</strong>, <strong>title</strong>, <strong>priority</strong>

titlepriorityを返してください。順序は、'critical'が最初、次に'high'、その次に'low'、それ以外が最後になるようにします。同じ優先度内では、titleのアルファベット順でソートしてください。

チートシート

カスタムルールでソートするには、ORDER BY の中で CASE を使用します:

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 ... は、CASE WHEN column = value THEN ... と同等です。

自分で試してみよう

SELECT title, priority
FROM tasks
ORDER BY
    -- ...
quiz icon腕試し

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

応用のすべてのレッスン