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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 最近把平时在项目中常用到的数据库分页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 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
40 10
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
95 0
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
72 0
|
2月前
|
SQL 数据库 数据安全/隐私保护
【操作宝典】SQL巨擘:掌握SQL Server Management的终极秘籍!
【操作宝典】SQL巨擘:掌握SQL Server Management的终极秘籍!
61 0
|
3月前
|
Oracle 关系型数据库 MySQL
mysql数据库和Oracle的区别
mysql数据库和Oracle的区别
50 1
|
5天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
55 6
|
3月前
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
83 0
|
22天前
|
Oracle 关系型数据库 MySQL
Seata常见问题之oracle 数据库 报 just support mysql如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
53 0
|
1月前
|
SQL Oracle 关系型数据库
Oracle系列十一:PL/SQL
Oracle系列十一:PL/SQL
|
1月前
|
SQL Oracle 关系型数据库
Oracle系列之八:SQL查询
Oracle系列之八:SQL查询

推荐镜像

更多