Menu
Coddy logo textTech

ORDER BY での CASE

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

CASESELECT のためだけのものではありません。列単体では表現できないカスタムルールに従って rows を並べ替えるために、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 の昇順(アルファベット順)でソートしてください。

自分で試してみよう

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

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

応用のすべてのレッスン

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