SQLPathLab
基础查询 · 基础

ORDER BY

按照指定字段对结果进行升序或降序排列。

简介

ORDER BY 对最终结果按一个或多个表达式排序,默认是 ASC,也可以显式指定 DESC。若排序字段存在并列值,需要追加唯一字段作为次级排序,才能得到稳定顺序。没有 ORDER BY 时,数据库不保证行的返回顺序。

基础语法

SELECT * FROM orders ORDER BY amount DESC, id;

示例

ORDER BY 示例

按 amount 从高到低排列订单,并用 id 作为并列值的稳定次序,确认最大金额位于结果顶部。

示例数据表

表名:orders
orders
idcustomer_idproduct_idnamedepartmentamountstatuscreated_atdiscount
1 101 201 Alice Sales 1200 paid 2026-01-03 0
2 102 202 Bob IT 900 pending 2026-01-08 50
3 101 201 Cindy Sales 1500 paid 2026-02-02 100
4 104 203 David HR 700 cancelled 2026-02-15 0

运行结果

result
idcustomer_idproduct_idnamedepartmentamountstatuscreated_atdiscount
3 101 201 Cindy Sales 1500 paid 2026-02-02 100
1 101 201 Alice Sales 1200 paid 2026-01-03 0
2 102 202 Bob IT 900 pending 2026-01-08 50
4 104 203 David HR 700 cancelled 2026-02-15 0

常见问题

不写 ASC 或 DESC 时是什么顺序?

默认是 ASC 升序;需要降序时应明确写 DESC。

可以按多个字段排序吗?

可以,数据库先按第一个字段排序,再用后续字段处理并列记录。

LIMIT 前为什么常要写 ORDER BY?

没有 ORDER BY 时,LIMIT 返回哪些行没有稳定的业务含义。

标签

常用过滤数据

这篇内容是否清楚?