3.1 排序数据
SELECT prod_name
FROM products;
得到的是无序的结果。
如果不排序,数据一般以它在表中出现的顺序显示。
为明确对检索出的数据进行排序,则可以使用ORDER BY
子句取一个或多个列的名字,据此对输出进行排序。
SELECT prod_name
FROM products
ORDER BY prod_name;
那么检索出的数据按照prod_name列以字母顺序进行排序
注意:在指定ORDER BY子句时,应该保证它是SELECT语句中最后一条子句。
3.2 按多个列排序
实际经常需要不止一个列进行数据排序,那么就只需指定这些列名,列名之间用逗号分开即可。
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price, prod_name;
检索3个列,并按其中两个列对结果进行排序。
3.3 按列位置排序
除能用列名指出排序顺序外,ORDER BY还支持按相对列位置进行排序。
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY 2, 3;
结果同上,不同之处在于ORDER BY,指定的是选择列的相对位置而不是列名。
3.4 指定排序方向
不仅仅可以对数据进行升序排序(默认排序方式),还可以对数据进行降序排序,但必须指定DESC
关键字。
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price DESC;
可以看到数据按照prod_price降序进行排序。
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price DESC, prod_name;
而在这个例子中,DESC关键字只应用于直接位于其前面的列名。只对prod_price指定DESC,对prod_name不指定,说明prod_price列以降序排序,而prod_name列(在每个价格内)仍然按照标准的升序排序。