在取得資料的同時,也可以進行排序。
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 的前兩筆資料撈出來啦。
參考資料: