Menu
CoddyTech

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。选择读起来更清晰的形式即可。

challenge icon

挑战

简单

可用的表和列:

  • tasks: id, title, priority

返回 title 和 priority,排序时让 'critical' 排在最前,然后是 'high',接着是 'low',其他值排在最后。优先级相同时,按 title 的字母顺序排序。

亲手试试

SELECT title, priority
FROM tasks
ORDER BY
    -- 将下方占位用的排序方式替换为 CASE 表达式,
    -- 按任务要求为各行排序,同名次时再按字母顺序排列。
    id
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

进阶内容中的所有课

自己练习: SQL 在线编辑器