Oracle ORDER BY子句用于对结果集中的记录进行排序。 ORDER BY
子句只能在SELECT语句中使用。html
Oracle/PLSQL 中的ORDER BY的语法是:程序员
SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ];
参数express
expressions
- 任何均可以知足要选择记录的条件。tables
- 任何均可以知足要选择记录的条件。WHERE conditions
- 任何均可以知足要选择记录的条件。ASC
- 可选的。它按照表达式(expression
)以升序对结果集进行排序(若是没有提供修饰符,这是默认值)。DESC
- 可选的。它按表达式(expression
)按降序对结果集进行排序。注意oracle
ORDER BY
子句中未提供ASC
或DESC
修饰符,则结果将按升序按表达式排序(这至关于ORDER BY expression ASC
。能够在使用Oracle ORDER BY
子句时不指定ASC
或DESC
值。 当在ORDER BY
子句中省略指定属性时,排序顺序默认为ASC
或按升序排序。spa
例如:code
SELECT supplier_city FROM suppliers WHERE supplier_name = 'Microsoft' ORDER BY supplier_city;
这个Oracle ORDER BY
示例将按 supplier_city
字段升序排序返回全部记录,并等效于如下ORDER BY
子句:htm
SELECT supplier_city FROM suppliers WHERE supplier_name = 'Microsoft' ORDER BY supplier_city ASC;
大多数程序员若是想按升序排序,他们通常都会省略ASC
属性。排序
在以降序对结果集排序时,能够在ORDER BY
子句中使用DESC
属性,以下所示:ci
SELECT supplier_city FROM suppliers WHERE supplier_name = 'Microsoft' ORDER BY supplier_city DESC;
这个Oracle ORDER BY
示例将按 supplier_city
字段排序返回的全部记录。get
还能够使用Oracle ORDER BY
子句对结果集中的相对位置进行排序,结果集中的第一个字段为1
,第二个字段为2
,依此类推。
例如:
SELECT supplier_city FROM suppliers WHERE supplier_name = 'Microsoft' ORDER BY 1 DESC;
这个Oracle ORDER BY
将按supplier_city
字段降序排序返回全部记录,由于supplier_city
字段位于结果集中的位置是#1
,等效于如下ORDER BY
子句:
SELECT supplier_city FROM suppliers WHERE supplier_name = 'Microsoft' ORDER BY supplier_city DESC;
当使用Oracle ORDER BY
子句对结果集排序时,能够在单个SELECT
语句中使用ASC
和DESC
属性。
例如:
SELECT supplier_city, supplier_state FROM suppliers WHERE supplier_name = 'Microsoft' ORDER BY supplier_city DESC, supplier_state ASC;
这个Oracle ORDER BY
查询将按照supplier_city
字段降序顺序和按照supplier_state
升序返回排序后的全部记录。