问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

几种常见SQL分页方式效率比较,一帖子

发布网友 发布时间:2022-04-25 09:39

我来回答

2个回答

懂视网 时间:2022-04-07 22:12

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

三种常见的SQL分页语句

标签:

热心网友 时间:2022-04-07 19:20

sqlserver分页 第一种分页方法 需用到的参数: pageSize 每页显示多少条数据 pageNumber 页数 从客户端传来 totalRecouds 表中的总记录数 select count (*) from 表名 totalPages 总页数 totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1 pages 计算前pages 条数据 pages= pageSize*(pageNumber-1) SQL语句: select top pageSize * from 表名 where id not in (select top pages id from 表名 order by id) order by id 第二种分页方法 pageSize 每页显示多少条数据 pageNumber 页数 从客户端传来 pages=pageSize*(pageNumber-1)+1 select top pageSize * from 表名 where id>=(select max(id) from (select top pages id from 表名 order by id asc ) t ) mysql分页 需用到的参数: pageSize 每页显示多少条数据 pageNumber 页数 从客户端传来 totalRecouds 表中的总记录数 select count (*) from 表名 totalPages 总页数 totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1 pages 起始位置 pages= pageSize*(pageNumber-1) SQL语句: select * from 表名 limit pages, pageSize; mysql 分页依赖于关键字 limit 它需两个参数:起始位置和pageSize 起始位置=页大小*(页数-1) 起始位置=pageSize*(pageNumber -1) oracle分页 pageSize 每页显示多少条数据 pageNumber 页数 从客户端传来 totalRecouds 表中的总记录数 select count (*) from 表名 totalPages 总页数 totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1 startPage 起始位置 startPage= pageSize*(pageNumber-1)+1 endPage=startPage+pageSize SQL语句 select a.* from ( select rownum num ,t.* from 表名 t where 某列=某值 order by id asc )a where a.num>=startPage and a.num<endPage db2分页 int startPage=1 //起始页 int endPage; //终止页 int pageSize=5; //页大小 int pageNumber=1 //请求页 startPage=(pageNumber-1)*pageSize+1 endPage=(startPage+pageSize); SQL语句 select * from (select 字段1,字段2,字段3,字段4,字段5,rownumber() over(order by 排序字段 asc ) as rowid from 表名 )as a where a.rowid >= startPage AND a.rowid <endPage access分页 pageSize 每页显示多少条数据 pageNumber 页数 从客户端传来 pages=pageSize*(pageNumber-1)+1 SQL语句 select top pageSize * from 表名 where id>=(select max(id) from (select top pages id from 表名 order by id asc ) t )
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
新装修怎样去除异味又快又有效,洋葱和土肥皂都试过了,都没用。 新装修的店面通风多久 新店装修通风需要多久? 新装修的店面多久多久没有异味 “新店装修后臭味能持续多长时间”_百 ... 我09年的国三柴油货车,到19年7月以后还能审吗? iebook 怎样让背景音乐从第一页开始放而不是封面开始 iebook超级精灵的背景音乐和页面插入音乐,可以分别控制吗? 用iebook做电子杂志的时候怎么从头到尾设同一首音乐 iebook支持导入多首音乐吗?可不可以对每页进行音乐设置? IEBOOK 往回翻页时上一页的背景音乐怎么样才能从头开始播放而不是接... 如何用iebook连续几页不间断播放同一首音乐? sql语句分页和排序问题 Sql 分页与排序语句 sql语句查询加分页 求SQL分页的语句 一条sql 语句搞定数据库分页 SQl分页语句 请问下sqlserver2008分页语句怎么写? sql语句分页详解 SQL语句分页查询,一页面多少数据合适 如何用sql语句 实现分页查询? SQL如何实现数据分页,要具体语句,谢谢 如何用sql语句 实现分页查询 用SQL语句怎么实现数据库分页? 跪求Affect3D全部合集,要动画不要CG图 高分求Affect3D的作品图集,G4已有,两个兽人和一个女的也有了,其他的图片或者视屏都可以。 求affect3d比较新的,好看的质量高的动画作品合集 求affect3d g4e-tara&#39;s second assignment注意是second,first有 affect3d 作品,求大神下载地址 affect3d的动漫,有多少都行。最好有游戏安装包。 Affect3D这个游戏已经出了,会有人破解吗 SQL Server 分页 查询语句 SQl语句查询排名分页 如何使用sql语句进行分页操作? 怎么做可乐鸡腿? 可乐烧鸡腿应该怎么做? 可乐烧鸡腿家常做法大全 新手机号注册微信时要好友辅助注册,好友条件都符合,但是为什么申请不了 带鱼怎么制做 求助:怎样做带鱼 衣柜异味好大,用有什么办法能去除吗? 手机进水屏幕变蓝怎么办? 手机屏幕进水了,但还是好用,就是屏幕颜色变成蓝色了,截图上看不见颜色,咋办哪? 现在手机进水屏幕变成蓝色的了,白天看不见,晚上有点看得清楚这是什么情况? 手机进水了屏幕有一点点蓝色怎么办? 苹果6s手机屏幕进水后感觉显示屏颜色变了 苹果6plus进水啦一切正常就是感觉屏幕颜色有点不正常是怎么回事 如何在微信资料名片上把原有的手机号码修改成现有的? QQ空间的资料名片怎样设计? 如何制作漂亮的个人资料名片 关于小猫的资料名片100字