iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0

在取得資料的同時,也可以進行排序。

ORDER BY

SELECT column_name
FROM tabel_name
WHERE <condition> 
ORDER BY column_name [ASC, DESC];

ORDER BY 不一定需要 WHERE 子句,但如果有 WHERE 的話會放在 ORDER BY 前面。

  • ASC:此為預設值,結果會由小往大排序。
  • DESC:結果會由大往小排序。

我們一起使用一個情境題來試試看。

情境題 1

我們想要以 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

我們也可以使用 LIMIT ,限制回傳的資料數量。

情境題 2

現在我們只想要 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

情境題 3

當然我們也可以跟 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 的前兩筆資料撈出來啦。

參考資料:


上一篇
Day 13 選取資料 - WHERE
下一篇
Day 15 選取資料 - AS
系列文
新手小白的每天一點SQL31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言