SQL必知必会(3)排序检索数据
子句:SQL语句由子句构成,有些子句是必须的,有些是可选的。
排序数据:
1 | SELECT prod_name |
prod_name |
---|
Fish bean bag toy |
Bird bean bag toy |
Rabbit bean bag toy |
8 inch teddy bear |
12 inch teddy bear |
18 inch teddy bear |
Raggedy Ann |
King doll |
Queen doll |
1 | SELECT 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 |
在指定一条ORDER BY子句时,应该保证它是SELECT语句中最后一条子句。否则报错。
通常ORDER BY子句中使用的列,是为显示而选择的列。但是用非检索的列排序数据是完全合法的。
按多个列排序:检索3列,先按价格然后按名称排序。
1 | SELECT prod_id, 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 |
按列位置排序:
1 | SELECT prod_id, 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 |
ORDER BY 2,3 表示按SELECT清单中,先按第2列排序,再按第3列排序。
当想排序的列没有出现在SELECT清单中时,不能使用这项技术。
指定排序方向(升序、降序):
1 | SELECT prod_id, prod_price, 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 |
默认升序,使用DESC关键字实现降序。
用多个列排序:
1 | SELECT prod_id, prod_price, 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 |
BNBG02 | 3.49 | Bird bean bag toy |
BNBG01 | 3.49 | Fish bean bag toy |
BNBG03 | 3.49 | Rabbit bean bag toy |
DESC关键字只应用到直接位于其前面的列名。
如果想在多个列上进行降序排序,必须对每一列都指定DESC关键字。
DESC - DESCENDING,ASC - ASCENDING。
区分大小写和排序顺序:在字典排序顺序中,A与a相同,这是大多数数据库管理系统默认的。