麻辣家族討論版版's Archiver

小誌 發表於 2011-4-20 10:30

8-2-3 Order By 排序

[b][color=DarkRed][size=4]8-2-3   Order By 排序[/size][/color][/b]雖然使用Where條件式可以依我們的條件定義來選取我們需要的資料,但是我們所得的資料錄順序是沒有特定規則的,例如,我希望同學的成績是按照數學分數的高低來條列(由最低分數排到最高分數),那該如何下指令?
首先,先完成您所需的欄位資料SQL句子,如果想獲得的全部欄位資料,我們就這樣寫:[code]Select *  From  transcript[/code]這樣就會取出所有資料表欄位的資料,可是我希望同學的成績資料是依照數學分數的高低來排列ㄚ,那我們就加上排序指令「Order By」,在「Select …Form…」後面再加上我們的條件「Order By 數學」:[code]Select *  From  transcript Order By 英文[/code]使用上列的SQL句子向資料庫下命令,即可獲得下圖的結果:(範例ex08_16.php)
[attach]5647[/attach]
圖8-19 依英文學分數排序。

小誌 發表於 2011-4-20 10:31

排序指令「Order By」,並不是只能依據單一的欄位排序,我們也可以同時指定多個欄位為排序依據:[code]Select *  From  transcript  Order By 國文, 英文 ,數學 [/code]上式排序的結果,將會是先依「國文」欄位排序,然後再按照「英文」欄位排序,最後才會依照「數學」欄位排序:(範例ex08_17.php)
[attach]5648[/attach]
圖8-20  依「數學」、「國文」、「英文」欄位順序排序。

小誌 發表於 2011-4-20 10:32

[color=RoyalBlue][size=3][b]8-2-3-1   Desc 逆向排序[/b][/size][/color]
使用排序指令「Order By」來排序時,所得的結果是「從小排到大」,如果我們要「從大排到小」,則可在排序欄位名稱的後面再加上「Desc」指令,例如,依「數學」欄位排序,但是要從分數高的排到分數低的:[code]Select *  From  transcript Order By 數學 Desc[/code]使用上列的SQL句子向資料庫下命令,即可獲得下圖的結果:(範例ex08_18.php)
[attach]5650[/attach]
圖8-21  依數學分數「從大到小」排序。

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供