使用Select查出想要的資料後,假如想要使資料排序由小到大或是由大到小,這時候就需要使用 Order by 這個指令來做排序。

資料排序 Order By

將資料做排序有兩個關鍵字:

  • asc 遞增(由小到大)
  • desc 遞減(由大到小)
  • 使用order by不只是數值的大小做排序,也可以是時間的久遠或英文(a-z)的大小或者文字的筆畫來做排序。

    SELECT "欄位名稱"
    FROM "資料表名稱"
    [WHERE "條件"]
    ORDER BY "欄位名稱" [ASC or DESC];
    

    Order by條件是可以多個的

    但假如以欄位名稱1排序後,有三個名稱重複一樣,oder by後可以再用,做區隔後繼續 欄位名稱2 加上 ASC or DESC排序,若排序後還是一樣無發比較高下的話可再第三個 欄位名稱3排序以此類推,但會越前面的排序為優先。

    作法如下:

    ORDER BY "欄位名稱1" [ASC or DESC],"欄位名稱2" [ASC or DESC],"欄位名稱3" [ASC or DESC],...;
    

    以student資料表來做order by的範例:

    現在要以id來進行遞減的排序並顯示出學生姓名

    SELECT   學生
    FROM     student
    ORDER BY id DESC
    

    顯示結果依照id大小,從最大(京帥 id=8)排列到最小(Mark id=1)。結果如下:

    那麼現在要以學生姓名來進行遞增。

    SELECT   學生
    FROM     student
    ORDER BY 學生 ASC
    

    顯示結果先由英文排序到中文,而英文從字母的先後順序開始遞增,中文則是依照筆畫來做遞增。結果如下:

    使用工具精靈產生Order By的SQL

    對資料庫新增查詢後,右鍵在編輯器中查詢設計,選擇想要的資料表(作法與前幾篇SQL小精靈一樣),在排序類型那兒的下拉選單就可以對欄位做遞增或遞減了,而SQL就會在下方,確定後就可執行了(也可以對不想顯示的欄位做排序唷><)。