oracle怎么实现分页?
因为Oracle数据库没有Top关键字,所以这里就不能够像微软的数据据那样操作,这里有两种方法:
一种是利用相反的。
PAGESIZE:每页显示的记录数
CURRENTPAGE:当前页号
数据表的名字是:components
索引主键字是:id
select * from components where id not in(select id from components where rownum<=(PAGESIZE*(CURRENTPAGE-1))) and rownum<=PAGESIZE order by id;
如下例:
select * from components where id not in(select id from components where rownum<=100) and rownum<=10 order by id;
从101到记录开始选择,选择前面10条。使用minus,即中文的意思就是减去,呵呵,这语句非常的有意思,也非常好记
select * from components where rownum<=(PAGESIZE*(CURRENTPAGE-1)) minus select * from components where rownum<=(PAGESIZE*(CURRENTPAGE-2));
如例:select * from components where rownum<=10 minus select * from一种是利用Oracle的rownum,这个是Oracle查询自动返回的序号,一般不显示,但是可以通过select rownum from [表名],可以看到,是从1到当前的记录总数。
select * from (select rownum tid,components.* from components where rownum<=100) where tid<=10;