首页/数据/SQL 速查/ORDER BY 排序与稳定性
本包目录(311 条)

ORDER BY 排序与稳定性

对结果排序:支持多列、表达式、列序号与别名;没有 ORDER BY 时返回顺序不保证,分页与 Top N 场景必须显式排序。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT id, name, created_at, amount * 1.06 AS gross
FROM orders
ORDER BY gross DESC, id ASC
LIMIT 20;
方向ASC 默认、DESC 降序
多列从左到右依次比较
可用元素列、表达式、别名、SELECT 列序号(从 1 起)
NULL位置规则见“排序中的 NULL 位置处理”
列序号排序(ORDER BY 2)可读性差且改列顺序时易错,长期维护的 SQL 用列名或别名。

易错点

  • 排序键重复值多时顺序不稳定:分页可能出现重复行或丢行,补主键做次级排序键
  • ORDER BY 表达式通常无法走索引(除非有对应函数索引),大表排序加 LIMIT 要关注 filesort 或临时表

数据来源与参考

  • MySQL 8.0 Reference Manual · ORDER BY
  • PostgreSQL Documentation · ORDER BY
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌