博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句梳理
阅读量:4677 次
发布时间:2019-06-09

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

最近把平时在项目中常用到的数据库分页sql总结了下。大家可以贴出分页更高效的sql语句。
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 )

转载于:https://www.cnblogs.com/fancunwei/p/3183015.html

你可能感兴趣的文章
如此大量的代码,但每个类里面的代码却不显得特别多,原因。。。。。。。。。。。。...
查看>>
C#特征备忘
查看>>
intelil——快捷键
查看>>
Java 面向对象 之 final 关键字
查看>>
Contact Form 7邮件发送失败的解决办法
查看>>
How to use For loop in CruiseControl.net
查看>>
P1800 software_NOI导刊2010提高(06)
查看>>
Python学习日记(1)使用if __name__ == "main"
查看>>
第八章 线性时间排序 8.3 基数排序
查看>>
创建maven项目
查看>>
二进制的最大公约数
查看>>
彻底弄懂 RTL级,行为级的区别
查看>>
关于PHP开发的9条建议
查看>>
jackson的自动检测机制
查看>>
2019 计蒜之道 初赛 第二场 B. 百度AI小课堂-上升子序列(简单) ( 实现)
查看>>
Python(2.7)-随机函数(random)
查看>>
loadrunner测试c/s架构的应用系统
查看>>
Mybatis学习笔记(一) 之框架原理
查看>>
Aptana 安装与配置
查看>>
ABSTRACT的方法是否可同时是STATIC,是否可同时是NATIVE,是否可同时是SYNCHRONIZED?
查看>>