SQL 的排序 ORDER BY

ORDER BY的語句使用對於ORDER BY 語句而言,默認值是升序排列,通常是不指定它。但升序的關鍵詞為ASC,降序為DESC。 語法結構如下::

SELECT 列字段名 FROM [工作表名稱$] ORDER BY 指定列字段名 升序(降序)

使用實例說明:

源數據:

SQL 的排序 ORDER BY

查詢內容

對英語成績進行降序排列:

SQL 的排序 ORDER BY

對英語成績進行升序排列:

SQL 的排序 ORDER BY

代碼運行的結果如下:

SQL 的排序 ORDER BY

SQL 的排序 ORDER BY

代碼如下:

SQL 的排序 ORDER BY

SQL 的排序 ORDER BY

Sub FuYun_Sql_paixu()
 Dim cnn As Object, rst As Object
 Dim Mypath As String, Str_cnn As String, Sql As String
 Dim i As Long
 Set cnn = CreateObject("adodb.connection")
 '以上是第一步,後期綁定ADO
 
 Mypath = ThisWorkbook.FullName
 '以上獲取當前工作簿的路徑及名稱
 
 If Application.Version < 12 Then
 '格式為.xls,調用下述語句
 Str_cnn = "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & Mypath
 Else
 '格式為.xlsx,調用下述語句
 Str_cnn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & Mypath
 End If
 cnn.Open Str_cnn
 '以上是第二步,建立鏈接
 '
 Sql = "SELECT * FROM [成績單$] ORDER BY 英語 asc "
 'Sql語句,查詢所有數據,並按照英語成績進行排序
 [f2:i1000].ClearContents
 '清空[e1:i1000]區域內容
 Range("f2").CopyFromRecordset cnn.Execute(Sql)
 'Execute語句先執行SQL語句
 '使用單元格對象的CopyFromRecordset方法將SQL查詢到的內容複製到D2單元格為左上角的單元格區域
 '以上是第三步,執行SQL語句並將數據讀入表格指定區域
 cnn.Close
 '關閉鏈接
 Set cnn = Nothing
 '釋放內存
End Sub

代碼解析

代碼我放了一個例子,大部分的代碼是一致的,只有SQL的句子不一樣。

如果需要兩列排序的SQL語句如下:

Sql = "SELECT * FROM [成績單$] ORDER BY 英語 asc,數學 asc

點擊關注可以更方便的查看Excel VBA的案例文章

私信 SQL 可以獲取SQL代碼的Excel文件

私信 視頻 可以獲取54集VBA入門視頻

私信 VBA或 vba 可以獲取文章中含VBA代碼的Excel文件


分享到:


相關文章: