在取得資料的同時,也可以進行排序。
SELECT column_name
FROM tabel_name
WHERE <condition>
ORDER BY column_name [ASC, DESC];
ORDER BY 不一定需要 WHERE 子句,但如果有 WHERE 的話會放在 ORDER BY 前面。
我們一起使用一個情境題來試試看。

我們想要以 carrer_center_wins 的數量為排序依據,並且只需要name , career_center_wins 的欄位,並由大到小排序。
我們可以這樣寫:
SELECT name, carrer_center_wins
FROM breeder
ORDER BY carrer_center_wins DESC;
輸出結果:

name | career_center_wins
---------------------------------------------+--------------------
Shadai Farm | 227
Eiichi Kobayashi | 79
Country Bokujo | 32
Inaba Bokujo | 16
Phillips Racing Partnership & John Phillips | 9
這樣我們就得到所需的資料了。
我們也可以使用 LIMIT ,限制回傳的資料數量。
現在我們只想要 career_center_wins 最多的前三筆資料,範例如下:
SELECT name, career_center_wins
FROM breeder
ORDER BY career_center_wins DESC
LIMIT 3;

name | career_center_wins
------------------+--------------------
Shadai Farm | 227
Eiichi Kobayashi | 79
Country Bokujo | 32
當然我們也可以跟 WHERE 混用,比如我們想要加一個條件,我們只想看到 career_center_wins 數量大於 50 的資料,範例如下:
SELECT name, career_center_wins
FROM breeder
WHERE career_center_wins > 50
ORDER BY career_center_wins DESC
LIMIT 3;

name | career_center_wins
------------------+--------------------
Shadai Farm | 227
Eiichi Kobayashi | 79
這樣就把 career_center_wins 數量大於 50 的前兩筆資料撈出來啦。
參考資料: