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

 

           最*把*时在项目中常用到的数据库分页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.   
  17. mysql分页    
  18.  需用到的参数:    
  19.  pageSize 每页显示多少条数据    
  20.  pageNumber 页数 从客户端传来    
  21.  totalRecouds 表中的总记录数 select count (*) from 表名    
  22.  totalPages 总页数    
  23.  totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1    
  24.  pages 起始位置    
  25.  pages= pageSize*(pageNumber-1)    
  26.  SQL语句:    
  27.  select * from 表名 limit pages, pageSize;    
  28.  mysql 分页依赖于关键字 limit 它需两个参数:起始位置和pageSize    
  29.  起始位置=页大小*(页数-1)    
  30.  起始位置=pageSize*(pageNumber -1)    
  31.   
  32. oracle分页   
  33.  pageSize 每页显示多少条数据    
  34.  pageNumber 页数 从客户端传来    
  35.  totalRecouds 表中的总记录数 select count (*) from 表名    
  36.  totalPages 总页数    
  37.  totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1    
  38.  startPage 起始位置    
  39.  startPage= pageSize*(pageNumber-1)+1  
  40.  endPage=startPage+pageSize   
  41.  SQL语句   
  42.  select a.* from    
  43.  (   
  44.    select rownum num ,t.* from  表名 t where 某列=某值 order by id asc    
  45.  )a   
  46.  where a.num>=startPage and a.num<endPage   
  47.   
  48. db2分页   
  49.  int startPage=1  //起始页   
  50.  int endPage;     //终止页   
  51.  int pageSize=5;  //页大小   
  52.  int pageNumber=1 //请求页   
  53.   
  54.  startPage=(pageNumber-1)*pageSize+1    
  55.  endPage=(startPage+pageSize);   
  56.   
  57.   
  58.  SQL语句   
  59.  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   
  60.   
  61. access分页   
  62.  pageSize 每页显示多少条数据    
  63.  pageNumber 页数 从客户端传来   
  64.  pages=pageSize*(pageNumber-1)+1  
  65.  SQL语句   
  66.  select top pageSize * from 表名 where id>=(select max(id) from (select top pages id from 表名 order by id asc ) t )  

深圳人才网 深圳招聘网 深圳人才招聘网 深圳人才大市场 

企业、个人免费注册,获取想要的 深圳 软件工程师招聘信息 月薪最低3000-8000,更有高端猎头职位! 

www.szrcwz.com                                                                                                                                           

                  Google 提供的广告

posted @ 2010-09-27 08:52  栈长  阅读(206)  评论(0编辑  收藏  举报