使用 SELECT 和 ORDER BY 进行排序检索
一、排序数据
关系型数据库设计理论认为:如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有任何意义
子句(clause)
概念:SQL语句由子句构成,子句有些是必需的,有些是可选的。子句由关键字加上提供的数据组成。
可使用 ORDER BY 子句对被检索数据进行排序
输入
SELECT prod_name
FROM Products
ORDER BY prod_name;
输出
prod_name
------------
12 inch teddy bear
18 inch teddy bear
8 inch teddy bear
Bird bean bag toy
Fish bean bag toy
King doll
Queen doll
Rabbit bean bag toy
Raggedy Ann
注意:1. ORDER BY 必须是 SELECT 语句中最后一条子句,否则将会出错 2. 默认按字母顺序排列和数字升序排列
二、按多个列排序
输入
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price, prod_name;
输出
prod_id prod_price prod_name
------- ---------- ---------
BNBG02 3.49 Bird bean bag toy
BNBG01 3.49 Fish bean bag toy
BNBG03 3.49 Rabbit bean bag toy
RGAN01 4.99 Raggedy Ann
BR01 5.99 8 inch teddy bear
BR02 8.99 12 inch teddy bear
RYL01 9.49 King doll
RYL02 9.49 Queen doll
BR03 11.99 18 inch teddy bear
注:只有在多行具有相同的 prod_price 值时才对产品按照 prod_name 进行排列。若 prod_price 值都不同,则不会按照 prod_name 排列
三、按位置排列
例:ORDER BY 2, 3
解释:2 代表 prod_price,3 代表 prod_name
四、指定排序方向
ORDER BY 默认为升序排列,也可以用DESC关键字进行降序排列
输入
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC;
输出
prod_id prod_price prod_name
------- ---------- ---------
BR03 11.99 18 inch teddy bear
RYL01 9.49 King doll
RYL02 9.49 Queen doll
BR02 8.99 12 inch teddy bear
BR01 5.99 8 inch teddy bear
RGAN01 4.99 Raggedy Ann
BNBG01 3.49 Fish bean bag toy
BNBG02 3.49 Bird bean bag toy
BNBG03 3.49 Rabbit bean bag toy
若需要对多列进行排序,则可以这样
输入
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC, prod_name;
输出
prod_id prod_price prod_name
------- ---------- ---------
BR03 11.99 18 inch teddy bear
RYL01 9.49 King doll
RYL02 9.49 Queen doll
BR02 8.99 12 inch teddy bear
BR01 5.99 8 inch teddy bear
RGAN01 4.99 Raggedy Ann
BNBG01 3.49 Fish bean bag toy
BNBG02 3.49 Bird bean bag toy
BNBG03 3.49 Rabbit bean bag toy
输出结果和上例相同
注:1. DESC关键字只作用在其前面的列名上,而prod_name仍按照升序排列(如果有价格相同的情况)
网友评论