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文件


分享到:


相關文章: