有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活。先看看单条 SQL 语句的分页 SQL 吧。

方法1:
适用于 SQL Server 2000/2005

SELECT TOP 页大小 *
FROM table1
WHERE id NOT IN(SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id)
ORDER BY id

方法2:
适用于 SQL Server 2000/2005

SELECT TOP 页大小 *
FROM table1
WHERE id >(SELECT ISNULL(MAX(id),0) FROM (SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id) A)
ORDER BY id

  

方法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的游标存储过程分页)    效率最差,但是最为通用

转载于:https://www.cnblogs.com/xiaqisoft/p/4509448.html

三种常见的SQL分页语句相关推荐

  1. 三种常见的SQL插入语句

    SQL插入语句是最常见的SQL语句之一,下面将为您介绍三种最常见的SQL插入语句,供您参考,如果您对SQL语句方面感兴趣的话,不妨一看. 我们在插入数据到数据库中的时候,常用的SQL插入语句如下: I ...

  2. 精简SQL分页语句---ROW_NUMBER

    简单实用的分页语句: select  TOP  页大小 * from (SELECT ROW_NUMBER()OVER(ORDER BY 日期)AS pageID,*FROM  表)T WHERE T ...

  3. SQL分页语句(转)

    有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活.先看看单条 SQL ...

  4. 网络工作室暑假后第三次培训资料(几种SQL分页的总结)整理

    在实际开发的过程中如果记录数非常的庞大,如果直接用SQL语句查询并填充到DataTable中,将是一件非常恐怖的事情.而且对网站性能,服务器性能消耗很大. 两个常犯的错误: 1)在现实数据时,查询时会 ...

  5. 注解分页查询 oracle,oracle分页查询的三种常见写法

    oracle分页查询的三种常见写法分页写法: –分页查询一select * from (select rownum r,e1.* from (select * from emp order by sa ...

  6. SQL 分页查询语句大全即(查找第N到M条记录的方法)

    SQL 分页查询语句大全即(查找第N到M条记录的方法) 第一种方法,我的原创方法 row=2 表示分页行数 page=1 表示页码 getnum=row*page select * from  (se ...

  7. java分页sql语句_「sql分页」sql语句 实现分页 - seo实验室

    sql分页 sql语句 实现分页 /* 分页思想:比如你要每页获取10条记录,当你显示第5页的记录时, 也就是选取第40条至50条的记录.首先应该从所有的记录集中选取 50条记录,同时进行倒序,再从中 ...

  8. 一次DB2分页语句的优化,带你拨开分页SQL优化的外衣

    一次DB2分页语句的优化,带你拨开分页SQL优化的外衣 1 前言: 最近,项目中的一个 DB2分页查询很慢 ,组长将此分页的优化分派给了我:然后一顿优化(乱操作)后,将DB2分页查询耗时降到了比较满意 ...

  9. sql常用语句使用方法

    一.root用户密码丢失或重新设置 方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = pass ...

最新文章

  1. 一种嵌套滑动冲突的解决方案
  2. 对表单控制是否提交 需要在方法名前面加上 return
  3. 网络编程学习笔记(获取所有网络接口)
  4. 【Pandas】这份Pandas练习题,必须成功拿下~
  5. 梯度下降法_梯度下降
  6. 生产力提升! 自己动手自定义Visual Studio 2019的 类创建模板,制作简易版Vsix安装包...
  7. washer和shell有什么区别_disk or washer method?
  8. 动态lacp和静态lacp区别_LACP学习笔记
  9. 台式机鼠标失灵打开计算机,台式电脑鼠标不动怎么办
  10. wifi共享大师去广告的方法
  11. 取消GitHub邮箱订阅
  12. LaTex常用公式和字母
  13. 《近匠》从Cubieboard到radxa:汤亮的第二次硬件创业
  14. 阿里云服务器 安装下载工具aira2步骤
  15. 构建一个JPEG解码器(2):文件结构
  16. Python语言学习笔记-001-Python 3.3.0的配置与Hello World
  17. 2021年美国大学生数学建模竞赛A题思路分析
  18. 知识更新越来越快,但是学习起来越来越困
  19. 商城类型app 英文名称
  20. python 实现热门音乐分析 附代码+数据 +论文

热门文章

  1. 某大学多站联动获取webshell
  2. 关于LayoutParams
  3. 三大主流ETL工具选型
  4. 特征工程——categorical特征 和 continuous特征
  5. python科学计算笔记(十三)pandas的merge、concat合并数据集
  6. SpringCloud实现原理图
  7. URL去重的几种方法
  8. (转)gLFlush()和gLFinish()
  9. Zabbix监控agent
  10. 【第五组】头脑风暴+核心竞争力+NABCD+个人(用例+功能+技术说明书) 最后修改时间 2017.07.13...