数据总览:
检索prod_name列:
SELECT prod_name
FROM products;
结果:
可以看出结果的输出顺序并没有什么意义。
如果需要让结果排序输出的话,可以使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。
加入ORDER BY子句的结果:
在指定一条ORDER BY子句时,应该保证它是SELECT语句中最后一条子句。否则将出现错误消息。
通常,ORRDER BY子句使用的列是我们选择显示的列。但是,如果用非检索的列对数据进行排序也是可以的。
按多个列排序
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price, prod_name;
除了能用列名指出排序顺序外,ORDER BY还支持按相对列位置进行排序。比如:
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY 2,3;
结果:
可以看出,这里的输出与上面的查询相同。SELECT清单中指定的是选择列的相对位置而不是列名。ORDER BY 2 表示按SELECT清单中的第二个列 prod_price 进行排序。ORDER BY 2, 3 表示先按 prod_price,再按 prod_name 排序。
指定排序方向:
ORDER BY子句默认是升序排序的。如果需要降序排序,需要使用DESC关键字。
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price DESC;
如果想要在多个列上降序排序,必须对每一列指定DESC关键字。