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
清单中,显然不能使用这项技术。
时间: 2024-11-06 07:36:11