三种常见的SQL分页语句
有关分页 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分页语句相关推荐
- 三种常见的SQL插入语句
SQL插入语句是最常见的SQL语句之一,下面将为您介绍三种最常见的SQL插入语句,供您参考,如果您对SQL语句方面感兴趣的话,不妨一看. 我们在插入数据到数据库中的时候,常用的SQL插入语句如下: I ...
- 精简SQL分页语句---ROW_NUMBER
简单实用的分页语句: select TOP 页大小 * from (SELECT ROW_NUMBER()OVER(ORDER BY 日期)AS pageID,*FROM 表)T WHERE T ...
- SQL分页语句(转)
有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活.先看看单条 SQL ...
- 网络工作室暑假后第三次培训资料(几种SQL分页的总结)整理
在实际开发的过程中如果记录数非常的庞大,如果直接用SQL语句查询并填充到DataTable中,将是一件非常恐怖的事情.而且对网站性能,服务器性能消耗很大. 两个常犯的错误: 1)在现实数据时,查询时会 ...
- 注解分页查询 oracle,oracle分页查询的三种常见写法
oracle分页查询的三种常见写法分页写法: –分页查询一select * from (select rownum r,e1.* from (select * from emp order by sa ...
- SQL 分页查询语句大全即(查找第N到M条记录的方法)
SQL 分页查询语句大全即(查找第N到M条记录的方法) 第一种方法,我的原创方法 row=2 表示分页行数 page=1 表示页码 getnum=row*page select * from (se ...
- java分页sql语句_「sql分页」sql语句 实现分页 - seo实验室
sql分页 sql语句 实现分页 /* 分页思想:比如你要每页获取10条记录,当你显示第5页的记录时, 也就是选取第40条至50条的记录.首先应该从所有的记录集中选取 50条记录,同时进行倒序,再从中 ...
- 一次DB2分页语句的优化,带你拨开分页SQL优化的外衣
一次DB2分页语句的优化,带你拨开分页SQL优化的外衣 1 前言: 最近,项目中的一个 DB2分页查询很慢 ,组长将此分页的优化分派给了我:然后一顿优化(乱操作)后,将DB2分页查询耗时降到了比较满意 ...
- sql常用语句使用方法
一.root用户密码丢失或重新设置 方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = pass ...
最新文章
- 一种嵌套滑动冲突的解决方案
- 对表单控制是否提交 需要在方法名前面加上 return
- 网络编程学习笔记(获取所有网络接口)
- 【Pandas】这份Pandas练习题,必须成功拿下~
- 梯度下降法_梯度下降
- 生产力提升! 自己动手自定义Visual Studio 2019的 类创建模板,制作简易版Vsix安装包...
- washer和shell有什么区别_disk or washer method?
- 动态lacp和静态lacp区别_LACP学习笔记
- 台式机鼠标失灵打开计算机,台式电脑鼠标不动怎么办
- wifi共享大师去广告的方法
- 取消GitHub邮箱订阅
- LaTex常用公式和字母
- 《近匠》从Cubieboard到radxa:汤亮的第二次硬件创业
- 阿里云服务器 安装下载工具aira2步骤
- 构建一个JPEG解码器(2):文件结构
- Python语言学习笔记-001-Python 3.3.0的配置与Hello World
- 2021年美国大学生数学建模竞赛A题思路分析
- 知识更新越来越快,但是学习起来越来越困
- 商城类型app 英文名称
- python 实现热门音乐分析 附代码+数据 +论文
热门文章
- 某大学多站联动获取webshell
- 关于LayoutParams
- 三大主流ETL工具选型
- 特征工程——categorical特征 和 continuous特征
- python科学计算笔记(十三)pandas的merge、concat合并数据集
- SpringCloud实现原理图
- URL去重的几种方法
- (转)gLFlush()和gLFinish()
- Zabbix监控agent
- 【第五组】头脑风暴+核心竞争力+NABCD+个人(用例+功能+技术说明书) 最后修改时间 2017.07.13...