SQL 道场
返回资料库

SQL 基础 / 6 min

排序、取前 N、去重:结果列表怎么整理

ORDER BY、LIMIT、DISTINCT 是做列表题最常用的三个工具。

ORDER BYLIMITDISTINCT

ORDER BY 控制结果顺序

默认情况下,查询结果没有稳定顺序。需要排序时,显式写 ORDER BY。

SELECT name, age
FROM users
ORDER BY age DESC;

DESC 是从大到小,ASC 是从小到大。

LIMIT 取前 N 行

比如取最年长的两位:

SELECT name, age
FROM users
ORDER BY age DESC
LIMIT 2;

先排序,再取前两行。

DISTINCT 去重

如果只想看有哪些城市:

SELECT DISTINCT city
FROM users;

DISTINCT 会把完全相同的结果行合并。

常见坑

  • LIMIT 不配 ORDER BY 时,“前 N 个”通常没有业务意义。
  • DISTINCT city, age 去重的是 city + age 的组合,不只是 city。
  • 排序字段可以不出现在结果列里,但初学阶段建议先显式写出来。