【SQL必知必会】第3课 排序检索数据


3.1 排序数据

 1 SELECT prod_name
 2 FROM Products
 3 ORDER BY prod_name;
 4 
 5 /*
 6 注意:ORDER BY 子句的位置
 7 在指定一条ORDER BY 子句时?应该保证它是SELECT语句中最后一条子句。
 8 如果它不是最后的子句,将会出现错误消息。
 9 
10 提示:可通过非选择列进行排序 , 即显示 A , 却根据B来排序的。
11 */

结果:


3.2 按多个列排序 

1 SELECT prod_id, prod_price, prod_name
2 FROM Products
3 ORDER BY prod_price, prod_name;
4 
5 # 第一关键字是 "薪资" ; 第二关键字是 "姓名"

结果:


3.3 按列位置排序

1 SELECT prod_id, prod_price, prod_name
2 FROM Products
3 ORDER BY 2, 3;
4 
5 /* 提示?按非选择列排序
6 此时的2,3是select 后接着的语句;必要时可以混合非选择列
7 */

结果:

结果其实和3.2一样,其实这个是根据相对列来排序,同时这个(相对)列必须出现在select语句中。同样是行,列,列是从1开始,而上一课中,行是从0开始的。


3.4 指定排序方向

1 SELECT prod_id, prod_price, prod_name
2 FROM Products
3 ORDER BY prod_price ASC;

结果:

默认是ASC(升序)


3.4.1 多个列

1 SELECT prod_id, prod_price, prod_name
2 FROM Products
3 ORDER BY prod_price DESC, prod_name DESC;
4 
5 # ?DESC DESCENDING descending 递减
6 # ASC? ASCENDING??ascending 递增
7 # 如果多个列则需要单独排序

结果:

提示:区分大小写和排序顺序,大小写是不区分的,所以会出现"aAbB..."这种情况