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
升序返回排序後的全部記錄。