日期:2014-05-16  浏览次数:20462 次

【转载】Oracle、DB2、SQLSERVER、Mysql、Access分页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/