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/谢谢合作!!!

  • 相关阅读:
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & ManacherK
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher J
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher I
    pat 1065 A+B and C (64bit)(20 分)(大数, Java)
    pat 1069 The Black Hole of Numbers(20 分)
    pat 1077 Kuchiguse(20 分) (字典树)
    pat 1084 Broken Keyboard(20 分)
    pat 1092 To Buy or Not to Buy(20 分)
    pat 1046 Shortest Distance(20 分) (线段树)
    pat 1042 Shuffling Machine(20 分)
  • 原文地址:https://www.cnblogs.com/midcn/p/3738286.html
Copyright © 2011-2022 走看看