博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 多种分页查询效率
阅读量:5788 次
发布时间:2019-06-18

本文共 1078 字,大约阅读时间需要 3 分钟。

关于SQL语句分页,网上也有很多,我贴一部分过来,并且总结自己已知的分页到下面,方便日后查阅。

方法1

适用于 SQL Server 任何版本

  1. SELECT TOP 页大小 *
  2. FROM table1
  3. WHERE id NOT IN
  4. (
  5. SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
  6. )
  7. ORDER BY id

 

方法2

适用于 SQL Server 任何版本

  1. --顺序写法:
  2. SELECT TOP 页大小 *
  3. FROM table1
  4. WHERE id >=
  5. (
  6. SELECT ISNULL(MAX(id),0)
  7. FROM
  8. (
  9. SELECT TOP (页大小*(页数-1)+1) id FROM table1 ORDER BY id
  10. ) A
  11. )
  12. ORDER BY id
  13.  
  14. --降序写法:
  15. SELECT TOP 页大小 *
  16. FROM table1
  17. WHERE id <=
  18. (
  19. SELECT ISNULL(MIN(id),0)
  20. FROM
  21. (
  22. SELECT TOP (页大小*(页数-1)+1) id FROM table1 ORDER BY id Desc
  23. ) A
  24. )
  25. ORDER BY id Desc

 

方法3

适用于 SQL Server 2005

  1. SELECT TOP 页大小 *
  2. FROM
  3. (
  4. SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
  5. ) A
  6. WHERE RowNumber > 页大小*(页数-1)

说明,页大小:每页的行数;页数:第几页。使用时,请把“页大小”和“页大小*(页数-1)”替换成数字。

其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。 建议优化的时候,加上主键和索引,查询效率会提高。

通过SQL 查询分析器,显示比较:我的结论是: 分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句 分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句 分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用

 

http://www.wxzzz.com/457.html

http://www.cnblogs.com/morningwang/archive/2009/01/02/1367277.html

转载于:https://www.cnblogs.com/DTWolf/p/4781680.html

你可能感兴趣的文章
SAS和SATA硬盘的区别
查看>>
现代程序设计 学生情况调查
查看>>
U盘安装linux后无法引导
查看>>
C# 矩阵作业
查看>>
俺的新书《Sencha Touch实战》终于出版了
查看>>
《空中交通管理基础》-潘卫军主编-第三章-航空器和飞行高度层
查看>>
关于数据库查询时报“query block has incorrect number of result columns”
查看>>
li下的ul----多级列表
查看>>
UVa 11292 勇者斗恶龙(The Dragon of Loowater)
查看>>
线程退出时执行函数,处理资源
查看>>
java中关于时间的格式化
查看>>
Wine QQ2012 笔记
查看>>
vue全选和取消全选(无bug)
查看>>
qml demo分析(clocks-时钟)
查看>>
vue去掉#——History模式
查看>>
2018年7月第一周网站建站笔记
查看>>
jasperReport例子
查看>>
MongoDB工具MagicMongoDBTool使用介绍(一) -- 简单MongoDB入门
查看>>
javascript的事件
查看>>
android 打开SD卡文件夹,并获得选中文件的路径怎么实现?
查看>>