



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SQL 中 Top 与 Order 结合使用的问题 VBA 实例教程除非注明, 文章均为 战战如疯 原创, 转载请保留链接 , VBA 交流群 273624828。在之前关于 SQL 的知识中我们讲过要提前记录的前 n 条的话 可以用 Top 命令,如果要对提取出来的数据进行排序可以用Order by,那么如果我们要从一批数据里面提取出前n大的数据自然就想到了先用 Order by 对数据进行排序, 然后再从 排好的数据中取出前 n条就可以了。那下面我们来看个例子, 有如下一个表 现在我们要从中取出前 3名, 显然这里有 4个 99,那我们只 要取任意 3个 99就可以了,看我下面写的代码Su
2、b search()Dim cnn As Object, sql$, rs As Object, i, nRange(E1).CurrentRegion.Offset(1, 0).ClearContentsSet cnn = CreateObject(adodb.connection)cnn.Open Provider=Microsoft.ACE.OLEDB.12.0;ExtendedProperties=excel 12.0;Data Source= &ThisWorkbook.FullNamesql = select top 3 姓名 ,数学 from Sheet1$A1:B11
3、order by 数学 descSet rs = cnn.Execute(sql) Sheet1.E2.CopyFromRecordset rs cnn.CloseSet rs = NothingSet cnn = NothingEnd Sub 上面的代码看上去没有什么问题,运行一下结果如下 结果是 4 个,不是我们所预料的 3 个,显然我们的 SQL 语句 与我们理解的有差别。之所以会出现这样的问题是因为我们 将 Top 与 Order 结合用了,当两者结合用的时候 Top n 就不 是指前 n 条了,而成了前 n 名了。那这个名次怎么排的呢? 很简单,原表中 4 个 99 分的排名都是 1
4、,5 个 1 分的排名都 是 5,没有 2、3、4 名,最低分 0 的排名是 10,没有 6、7、 8、9 名。所以如果你取 top1、top2、top3 或者 top4 得到的都 是 4 个排名 1 的数据,如果你取 top5、 top6、 top7、 top8 或 top9 那得到的就是排名 1和排名 5的一共 9 个数据。例如 top9 取前 9 名那就是第 1 名 4 个,2、3、4 名 0 个,第 5 名 5 个, 6、7、8、9 名 0 个,加起来是 9 个了。那如果我就是想取前 n 个数据而不是前 n 名,那怎么办?很简单,看下面的代码Sub search()Dim cnn As
5、 Object, sql$, rs As Object, i, n Range(E1).CurrentRegion.Offset(1, 0).ClearContentsSet cnn = CreateObject(adodb.connection) cnn.Open Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=excel 12.0;Data Source= &ThisWorkbook.FullNamesql = select 姓名 , 数学 from Sheet1$A1:B11 order by 数学 descsql =
6、select top 3 * from ( & sql & )Set rs = cnn.Execute(sql)Sheet1.E2.CopyFromRecordset rs cnn.CloseSet rs = NothingSet cnn = NothingEnd Sub上面的代码运行一下得到的结果就是 3个数据,这个 sql 语 句包括了两部分,先用 select 姓名 ,数学 fromSheet1$A1:B11 order by 数学desc形成一个降序排列的查询,然后我们再从这个查询中取top 3,所以这里 top 语句的 结构就成了“ select top * from table ”,也就没有了 order by的问题了,所以最后我结果就是实实在在的前 3 行数据 本节示例文件下载: 。0 您可能也喜欢:SQL 之删除数据SQL 语句应用基础SQL 基础 -where 条件设定SQL 基础
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北工艺美术职业学院《传感器与自动检测技术》2023-2024学年第二学期期末试卷
- 上海欧华职业技术学院《木材识别与鉴定》2023-2024学年第二学期期末试卷
- 宜宾职业技术学院《飞行器气动特性分析与设计》2023-2024学年第二学期期末试卷
- 保山学院《化学学科课程与教学论》2023-2024学年第二学期期末试卷
- 浙大宁波理工学院《针织成形技术》2023-2024学年第二学期期末试卷
- 温州医科大学仁济学院《现代秘书学》2023-2024学年第二学期期末试卷
- 泉州信息工程学院《移动电商实务》2023-2024学年第二学期期末试卷
- 石家庄铁道大学《英语听说(3)》2023-2024学年第二学期期末试卷
- 宁夏职业技术学院《中国传统文化书法》2023-2024学年第二学期期末试卷
- 西南财经大学《识图实训II》2023-2024学年第二学期期末试卷
- 供水企业安全生产培训课件
- 2024年《大学语文》期末考试复习题库(含答案)
- 早产的护理查房课件
- 国家智慧教育平台培训课件
- 针灸科出科个人小结
- 语感与语言习得-【中职专用】高一语文同步课件(高教版2023·基础模块上册)
- 2024年中国石化集团资本有限公司招聘笔试参考题库含答案解析
- 普通高中地理课程标准(2023年版)
- 检验批划分方案14
- 《公共管理学》期末考试复习题库(含答案)
- 公司实际控股人协议书
评论
0/150
提交评论