使用SELECT语句中的ORDER BY子句排序检索数据。
1、单列排序检索
ORDER BY 列名;
eg:从产品表中查询产品名并按升序排列
输入:
SELECT prod_name
FROM products
order by prod_name;
输出:
![fc86307d82274e1ca58532e953db49c4.png](https://i-blog.csdnimg.cn/blog_migrate/ac55c738fa2b01bab89206799d7cb479.png)
注: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;
输出:
![5f02ae19d0f77c885e5fb9943f45e248.png](https://i-blog.csdnimg.cn/blog_migrate/f11ce9b7efe09fc3af992063995c642a.jpeg)
本例中,只对相同产品价格的行按产品名称升序排列
3、按列位置排序
ORDER BY子句除了用列名指出排序顺序外,还可以按SELECT后面列的相对位置排序。当排序的列不出现在SELECT清单中时,不能采用这种方法 。
eg:从产品表中查询产品ID、产品价格和产品名称,并先对产品价格升序排列,再对产品名称升序排列。
输入:
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY 2,3; -- 2,3表示先按价格排序,再按产品名排序
输出:
![30be94cc8892264f1d7bb8b4584131fd.png](https://i-blog.csdnimg.cn/blog_migrate/5cad2a1e114f8b1576802a35bcbf376f.jpeg)
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;
输出:
![de3fc8e19339bfc06561ac1d2901793d.png](https://i-blog.csdnimg.cn/blog_migrate/e5271671235b2361d4c1a0b6727ffcb2.jpeg)
DESC关键字只作用在其前面的列名,当需要对多个列排序时,需要在每个列后加入关键字(升序可省略)。
eg2:从产品表中查询产品ID、产品价格、和产品名称,并先按产品价格降序排列,再按产品名称升序排列。
输入:
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC,prod_name;-- 产品价格为降序,产品名称为升序
输出:
![b662f08ad48016dfba9e3efd61787dd3.png](https://i-blog.csdnimg.cn/blog_migrate/3b547e7cb8e81530d074266632074bc6.png)
5、SQL运行顺序
![f71a5073b4adc1c800b60c0116441f84.png](https://i-blog.csdnimg.cn/blog_migrate/92f3dbf21245ff75f85b4619f480925c.jpeg)
分享即学习,我会不定时的分享一些成长干货,包括学习方法、软件技能、优质书单/电影以及大学期间的经历。
欢迎参观我的公众号「胡健学习笔记」,和大家一起进步~