SELECT语句检索输出结果往往是机器排序,不总是我们易于观察和导出的顺序。当使用ORDER BY子句置于句末时,可以按照自定的列来排序:
SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price;——表示检索出的“ prod_id, prod_price, prod_name”三列按照“ prod_price”列的排序。
组合排序是指单列中有重复行,运用另一列作为辅助排序的方法:
SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price,prod_name;——表示先按照prod_price列排序,再按照prod_name列排序。
还有使用检索列的相对位置排序的方法:
SELECT prod_id, prod_price, prod_name FROM Products ORDER BY 2,3;——先按照检索的第二列排序,再按照检索的第三列排序。当然,在后续更改SELECT后列名时,ORDER BY后的数值也应该随之修改,以免翻车。
ORDER BY子句默认顺序是升序——即由A到Z,由小到大。当需要降序时可以在其后添加关键字“DESC”:
SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price DESC;——表示按照“prod_price”列由大到小的顺序排序。
多列降序则应该在每个列名后面都加上“DESC”关键字:
SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price DESC,prod_name DESC;——表示先按照prod_price列的降序排序,再按照prod_name列的降序排序。如果只在其一后添加DESC:SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price DESC,prod_name;——那么表示先按照prod_price列的降序排序,再按照prod_name列的升序排序。二者均容易出错,切忌。
补充:数据库排序规则中A与a通常被视为相同,但是DBMS允许数据库管理员改变这种默认做法,而这些需要更多的SQL语言,而非单单ORDER BY子句能够完成的。








暂无数据