使用SELECT语句中的ORDER BY子句排序检索数据。
1、单列排序检索
ORDER BY 列名;
eg:从产品表中查询产品名并按升序排列
输入:
SELECT prod_name
FROM products
order by prod_name;
输出:
注:ORDER BY必须为SELECT语句的最后一条子句
2、多列排序检索
ORDER BY 列名1,列名2,……
多列排序时,先按第一个列排序,对于第一个列中相同的行,按第二个列排序,以此类推。
eg:从产品表中查询产品ID、产品价格和产品名称,并先对产品价格升序排列,再对产品名称升序排列。
输入:
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price,prod_name;
输出:
本例中,只对相同产品价格的行按产品名称升序排列
3、按列位置排序
ORDER BY子句除了用列名指出排序顺序外,还可以按SELECT后面列的相对位置排序。当排序的列不出现在SELECT清单中时,不能采用这种方法 。
eg:从产品表中查询产品ID、产品价格和产品名称,并先对产品价格升序排列,再对产品名称升序排列。
输入:
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY 2,3; -- 2,3表示先按价格排序,再按产品名排序
输出:
4、指定排序方向
ORDER BY默认升序排列(从A到Z),因此升序关键字ASC可有可无。若需降序排列,需指定关键字DESC。
ORDER BY 列名 DESC;
e:1:从产品表中查询产品ID、产品价格、和产品名称,并按产品价格降序排列。
输入:
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC;
输出:
DESC关键字只作用在其前面的列名,当需要对多个列排序时,需要在每个列后加入关键字(升序可省略)。
eg2:从产品表中查询产品ID、产品价格、和产品名称,并先按产品价格降序排列,再按产品名称升序排列。
输入:
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC,prod_name;-- 产品价格为降序,产品名称为升序
输出:
5、SQL运行顺序
分享即学习,我会不定时的分享一些成长干货,包括学习方法、软件技能、优质书单/电影以及大学期间的经历。
欢迎参观我的公众号「胡健学习笔记」,和大家一起进步~