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。- 排序字段可以不出现在结果列里,但初学阶段建议先显式写出来。