最*把*时在项目中常用到的数据库分页sql总结了下。大家可以贴出分页更高效的sql语句。

 第一种分页方法   


  1.  需用到的参数:    
  2.  pageSize 每页显示多少条数据    
  3.  pageNumber 页数 从客户端传来    
  4.  totalRecouds 表中的总记录数 select count (*) from 表名    
  5.  totalPages 总页数    
  6.  totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1    
  7.  pages 计算前pages 条数据    
  8.  pages= pageSize*(pageNumber-1)    
  9.  SQL语句:    
  10.  select top pageSize * from 表名 where id  not in (select top pages id from 表名 order by id) order by id    
  11.  第二种分页方法   
  12.  pageSize 每页显示多少条数据    
  13.  pageNumber 页数 从客户端传来   
  14.  pages=pageSize*(pageNumber-1)+1  
  15.  select top pageSize * from 表名 where id>=(select max(id) from (select top pages id from 表名 order by id asc ) t )   

  16. mysql分页    
  17.  需用到的参数:    
  18.  pageSize 每页显示多少条数据    
  19.  pageNumber 页数 从客户端传来    
  20.  totalRecouds 表中的总记录数 select count (*) from 表名    
  21.  totalPages 总页数    
  22.  totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1    
  23.  pages 起始位置    
  24.  pages= pageSize*(pageNumber-1)    
  25.  SQL语句:    
  26.  select * from 表名 limit pages, pageSize;    
  27.  mysql 分页依赖于关键字 limit 它需两个参数:起始位置和pageSize    
  28.  起始位置=页大小*(页数-1)    
  29.  起始位置=pageSize*(pageNumber -1)    

  30. oracle分页   
  31.  pageSize 每页显示多少条数据    
  32.  pageNumber 页数 从客户端传来    
  33.  totalRecouds 表中的总记录数 select count (*) from 表名    
  34.  totalPages 总页数    
  35.  totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1    
  36.  startPage 起始位置    
  37.  startPage= pageSize*(pageNumber-1)+1  
  38.  endPage=startPage+pageSize   
  39.  SQL语句   
  40.  select a.* from    
  41.  (   
  42.    select rownum num ,t.* from  表名 t where 某列=某值 order by id asc    
  43.  )a   
  44.  where a.num>=startPage and a.num<endPage   

  45. db2分页   
  46.  int startPage=1  //起始页   
  47.  int endPage;     //终止页   
  48.  int pageSize=5;  //页大小   
  49.  int pageNumber=1 //请求页   

  50.  startPage=(pageNumber-1)*pageSize+1    
  51.  endPage=(startPage+pageSize);   


  52.  SQL语句   
  53.  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   

  54. access分页   
  55.  pageSize 每页显示多少条数据    
  56.  pageNumber 页数 从客户端传来   
  57.  pages=pageSize*(pageNumber-1)+1  
  58.  SQL语句   
  59.  select top pageSize * from 表名 where id>=(select max(id) from (select top pages id from 表名 order by id asc ) t )  




                                                                                                                                    

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



关注微信公众号福利!!!

回复关键字「666」获取一份最新 Java 架构资料,你要的都有!

回复关键字「Java」获取JVM, 多线程等Java技术系列教程;

回复关键字「spring」获取Spring, Spring Boot, Spring Cloud教程;

回复关键字「架构」获取分布式、微服务、架构、高并发等系列干货;

回复关键字「面试」获取各种 Java 面试题及答案、面试实战经验;