程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP入門教程 >> 在ADO使用SELECT語法三

在ADO使用SELECT語法三

編輯:ASP入門教程
接上一篇文章:

ORDER BY

ORDER BY子句,可以設定排序的字段。

在一個SQL表達式之中,ORDER BY子句通常放置於最後。

    若要以遞減順序來進行排序(Z~A,9 ~0),須於您要遞減排序的每一字段的尾部加DESC字。譬如:

SELECT 姓名

FROM 員工

ORDER BY 工資 DESC, 年齡

    表示[工資] 字段以遞減順序來進行排序,[年齡] 字段以遞增順序來進行排序。

    ORDER BY子句中排序的字段,不可以包含MEMO字段類型或OLE對象類型,否則會發生錯誤。

    在ORDER BY子句之中包含多個的字段時,首先以ORDER BY之後的第一個字段來進行排序。然後,若在此字段之中有相同的資料記錄,才會以列第二字段來進行排序,依此類推。

GROUP BY

GROUP BY將查詢的結果做統計,語法如下:

SELECT fIEldlist
FROM table
WHERE criteria
[GROUP BY groupfIEldlist]

    使用WHERE子句,可以設定不想要做統計的資料,而使用HAVING子句可以篩選已經統計之後的字段。

不可以對MEMO字段類型或OLE對象類型的字段做統計,否則會發生錯誤。

    譬如ASP程式rs22.ASP如下,[SELECT 種類, Avg(價格) As 平均 From 產品 Group By 種類] 使用GROUP BY將查詢的結果做 [種類] 統計,統計各個種類統計來平均價格Avg(價格):

<%

Set conn1 = Server.CreateObject("ADODB.Connection") 

conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;" 

Set rs2 = Server.CreateObject("ADODB.Recordset")

SqlStr = "SELECT 種類, Avg(價格) As 平均 From 產品 Group By 種類"

Response.Write "<p>Avg(價格)"

rs2.Open SqlStr,conn1,1,1

Do while not rs2.EOF

Response.Write "<BR>" & rs2("種類") & ": " & rs2("平均")

rs2.MoveNext

Loop

rs2.Close %>

    以上的 ASP程式rs22.ASP,用戶端使用浏覽器,浏覽執行的結果,顯示依據 [種類] 統計來統計平均價格。

    讓我們多看個例子,譬如ASP程式rs22.ASP如下,[SELECT 種類, Sum(數量*價格) As 總計 From 產品 Group By 種類] 使用GROUP BY將查詢的結果做 [種類] 統計,統計各個種類的數量與價格相乘的總價Sum(數量*價格):

<%

Set conn1 = Server.CreateObject("ADODB.Connection") 

conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;" 

Set rs2 = Server.CreateObject("ADODB.Recordset")

SqlStr = "SELECT 種類, Sum(數量*價格) As 總計 From 產品 Group By 種類"

rs2.Open SqlStr,conn1,1,1

Response.Write "<p>Sum(數量*價格)"

Do while not rs2.EOF

Response.Write "<BR>" & rs2("種類") & ": " & rs2("總計")

rs2.MoveNext

Loop

rs2.Close %>

    以上的 ASP程式rs22.ASP,在用戶端使用浏覽器,浏覽執行的結果,顯示依據 [種類] 來統計總價。

GroupfIEldlist為用以統計的字段名稱,最多為10個字段。

    在groupfIEldlist中字段名稱的順序,將決定統計層次,由最高至最低的層次來分組。

    最後,譬如ASP程式rs22.ASP如下,[SELECT 姓名,科目,Avg(分數) As 平均 From 考試 Group By 姓名,科目] 使用GROUP BY將查詢的結果做依據 [姓名] 和 [科目] 統計,統計各個統計的 [平均] 分數Avg(分數):

<%

Set conn1 = Server.CreateObject("ADODB.Connection") 

conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;" 

Set rs2 = Server.CreateObject("ADODB.Recordset")

SqlStr = "SELECT 姓名,科目,Avg(分數) As 平均 From 考試 Group By 姓名,科目"

rs2.Open SqlStr,conn1,1,1

Response.Write "<p>Group By 姓名,科目"

Do while not rs2.EOF

Response.Write "<BR>" & rs2("姓名") & " " & rs2("科目") & " 平均: " & rs2("平均")

rs2.MoveNext

Loop

rs2.Close

%>

    以上的 ASP程式rs22.ASP,在用戶端使用浏覽器,浏覽執行的結果,顯示依據 [姓名] 和 [科目] 來統計 [平均] 分數。

學會了嗎? 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved