Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句

简介: 最近把平时在项目中常用到的数据库分页sql总结了下。大家可以贴出分页更高效的sql语句。
+关注继续查看

 第一种分页方法 

  需用到的参数:    
 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 )  


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
SQL 存储 Oracle
Oracle SQL操作和查询
SQL是结构化查询语言(Structured Query Language),专门用于数据存取、数据更新及数据库管理等操作。
17 0
|
6天前
|
SQL Oracle 关系型数据库
Oracle杂谈二 SQL*PLUS命令的使用大全
Oracle杂谈二 SQL*PLUS命令的使用大全
|
6天前
|
SQL Oracle 关系型数据库
oracle中sql的递归查询运用
oracle中sql的递归查询运用
|
2月前
|
SQL Oracle 关系型数据库
ORACLE——一条SQL计算同比、环比
ORACLE——一条SQL计算同比、环比
|
2月前
|
SQL Oracle 关系型数据库
Oracle——SQL插入uuid
Oracle——SQL插入uuid
|
2月前
|
SQL Oracle 关系型数据库
Oracle与MySQL的分页查询sql语句格式
Oracle与MySQL的分页查询sql语句格式
|
2月前
|
SQL Oracle 关系型数据库
Oracle 数据库 常见SQL语法
Oracle 数据库 常见SQL语法
90 0
|
2月前
|
SQL Oracle 关系型数据库
【SQL应知应会】表分区(二)• Oracle版
【SQL应知应会】表分区(二)• Oracle版
|
2月前
|
SQL 存储 Oracle
【SQL应知应会】表分区(一)• Oracle版
【SQL应知应会】表分区(一)• Oracle版
|
2月前
|
SQL Oracle 关系型数据库
【SQL应知应会】行列转换(三)• Oracle版
【SQL应知应会】行列转换(三)• Oracle版
推荐文章
更多
推荐镜像
更多