oracle怎么实现分页?

 我来答
是十七十七
2017-12-29 · TA获得超过7360个赞
知道小有建树答主
回答量:55
采纳率:100%
帮助的人:4.6万
展开全部

因为Oracle数据库没有Top关键字,所以这里就不能够像微软的数据据那样操作,这里有两种方法: 

  1. 一种是利用相反的。
    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条。

  2. 使用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

  3. 一种是利用Oracle的rownum,这个是Oracle查询自动返回的序号,一般不显示,但是可以通过select rownum from [表名],可以看到,是从1到当前的记录总数。
    select * from (select rownum tid,components.* from components where rownum<=100) where tid<=10;

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式