從以上的例子中,我們可以看見查詢的結果中,記錄排列的次序是依照本來的表中的記錄編號。我們通常希望結果會是根據一個我們喜歡的次序顯示出來。
使用了 ORDER BY 短句的 SELECT 語句的語法如下︰
SELECT
<字段列表>
FROM <表的名稱> [<WHERE短句>]
ORDER BY <算式>
[ASC | DESC] {,
<算式> [ASC | DESC]}
在 ORDER BY 短句中,一個 <算式> 可以是在 <字段列表> 中出現過的字段名稱或是同址別名。
關鍵字 ASC 表示結果是跟據指定算式由小至大排列;另一方面,關鍵字 DESC 表示結果是跟據指定算式由大至小排列。如果在 ORDER BY 短句中沒有出現 ASC 或 DESC,排序方法會被當作是由小至大。
如果在 ORDER BY 短句中出現了多於一個算式,第一個算式會是最主要的排序鍵,第二個會是其次的排序鍵……等等。
以下是一些例子︰
列出所有學生的班號、學生編號及姓名,記錄必須依學生編號的由小至大排序。 | ||||||||||||||||||||||||||||||||||||||||||||||||
SELECT class_num, stud_id, name FROM s6a ORDER BY stud_id | ||||||||||||||||||||||||||||||||||||||||||||||||
輸出︰
|
列出所有在中國語文及文化和英語運用獲得及格分數(50 分)或以上的同學的姓名和該兩科的分數。結果必須依中國語文及文化的分數由小至大排序。如果多於一個記錄的中國語文及文化分數相同,它們必須依英語運用的分數由大至小排序。 | ||||||||||||||||||||||||||||||||||||
SELECT name, clc, ue FROM s6a WHERE clc >= 50 AND ue >= 50 ORDER BY clc ASC, ue DESC | ||||||||||||||||||||||||||||||||||||
輸出︰
留意 Sung Hing Wah, Patrick 和 Chow Chi Ling 均在中國語文及文化獲得 70 分,但 Sung Hing Wah, Patrick 的英語運用分數較高,因此他的記錄在 Chow Chi Ling 之後。 同樣道理,Chung Kwok Fai, Fred 的記錄在 Fung Ching Man, Mandy 之後。 |