本内容来自:https://gairuo.com
在真实的大数据场景下,数据量往往非常庞大,我们要找到自己想要的特定内容就需要对结果进行排序。SQL提供了 ORDER BY 子句按给定列按升序或降序对结果进行排序的方法。本文介绍标准 SQL 的排序语句 ORDER BY。
本文例子中使用的数据是
筛选指定字段
中的数据内容。
Order by 是非常通用的,所有的 SQL 都支持。基本语法为:
SELECT column, another_column
FROM mytable
WHERE condition(s)
ORDER BY column ASC/DESC
不使用 ORDER BY 结果会按数据库中的默认顺序
ORDER BY 写在 WHERE 之后
默认按升序排序(ASC,可以不写)
降序使用 DESC
用 DESC 表示按倒序排序 (即:从大到小排序)
用 ACS 表示按正序排序 (即:从小到大排序)
asc: ascending order 升序
desc: descending order 降序
用序号代表字段
在用 ORDER BY 按一定的字段排序时,如果你不想写字段名,可以用 Select 中的序号来代码这些字段,如:
SELECT item_id, uesr_id
^^^^ ^^^^
FROM tab
ORDER BY 1;
在上面的查询中 ORDER BY 1 指的是 select 语句中的第一列,那就是 item_id。这个用法,还可以用在 GROUP BY 子句中。
注意:ORDER BY 和GROUP BY 中的数字始终以 1 开头,而不是以 0 开头。
基本使用:
-- 按出生早到晚排序
select name, b_year
from students
where class = 2
order by b_year
-- 数学成绩从高到低
select name, math
from students
where class = 2
order by math desc
多重排序: