zoukankan      html  css  js  c++  java
  • Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句

    最近把平时在项目中常用到的数据库分页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 )


     温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

  • 相关阅读:
    The Quad
    将OrCAD Capture CIS的设计文件(.dsn)导入到PADS Logic VX.2.3
    OrCAD Capture CIS 16.6 将版本16.6的设计文件另存为版本16.2的设计文件
    Eclipse IDE 添加jar包到Java工程中
    PADS Logic VX.2.3 修改软件界面语言
    切换Allegro PCB Editor
    Allegro PCB Design GXL (legacy) 将brd文件另存为低版本文件
    Allegro PCB Design GXL (legacy) 设置自动保存brd文件
    Could not create an acl object: Role '16'
    windows 下apache开启FastCGI
  • 原文地址:https://www.cnblogs.com/zjoch/p/6405930.html
Copyright © 2011-2022 走看看