Board logo

標題: 8-2-4 Limit 限制筆數 [打印本頁]

作者: 小誌    時間: 2011-4-20 10:33     標題: 8-2-4 Limit 限制筆數

8-2-4   Limit 限制筆數
老師說:本次考試成績,總分為全班前五名者,可獲得獎學金!現在請您將「成績單」資料表內總分為前五名的同學列表出來,這個SQL指令如何下?先把總成績計算出來放在自訂名稱的「總分」欄位裡:
  1. Select 姓名,國文,英文,數學,國文+英文+數學 As 總分 From transcript
複製代碼
然後,再加入依照總分排序的指令:
  1. Select 姓名,國文,英文,數學,國文+英文+數學 As 總分 From transcript  Order By 總分
複製代碼
是依照總分排序了沒錯,但卻是由最低分數排到最高分數,得獎的可不是倒數前五名的同學ㄚ!而是要分數最高的前五名同學,因此,要在排序欄位名稱(國文+英文+數學)的後面再加上「Desc」指令,讓排序的結果是「從大排到小」:
  1. Select 姓名,國文,英文,數學, 國文+英文+數學 As 總分  From  transcript  Order By總分
複製代碼
上式SQL指令可獲得下圖結果:(範例ex08_19.php)
[attach]5651[/attach]
圖8-21   依「總分排序」從大排到小。
作者: 小誌    時間: 2011-4-20 10:36

Ok!由分數高的排到分數低的了,但是我們只取前五名ㄚ,所以列表的結果只需顯示總分為前五名的同學資料,這時候我們就可以使用「Limit」指令,將原來的「Select…Desc」更改為「Select…Desc Limit」,並在「Limit」之後指定我們要選取的筆數即可:(範例ex08_20.php)
  1. Select 姓名,國文,英文,數學, 國文+英文+數學 As 總分  From  transcript  Order By總分Desc Limit 5
複製代碼
這樣就獲得正確的結果囉!如下圖所示:
[attach]5652[/attach]
圖8-23   SQL指令執行結果。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)