排序检索数据

ORDER BY子句的位置
在指定一条ORDER BY子句时,应该保证它是SELECT语句中最后一条子句。如果它不是最后的子句,将会出现错误消息。

经常需要按不止一个列进行数据排序。例如,如果要显示雇员名单,可能希望按姓和名排序(首先按姓排序,然后在每个姓中再按名排序)。如果多个雇员有相同的姓,这样做很有用。

要按多个列排序,简单指定列名,列名之间用逗号分开即可(就像选择多个列时那样)。

下面的代码检索3个列,并按其中两个列对结果进行排序——首先按价格,然后按名称排序。

输入▼

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子句做相应的改动)。最后,如果进行排序的列不在SELECT清单中,显然不能使用这项技术。
原文地址:https://www.cnblogs.com/qook/p/4897653.html