Oracle中分页查询的详细实现过程

分页查询的实现过程

1.需要使用到Oracle中的伪列,rownum

rownum查询的是表中实际的行数,返回的是该表中所有行的序号
例如:select rownum from mytable
如果表中有十条数据,将会返回(1~10)这十行数据

2.分页查询的sql语句:

以学生表(mytable)为例:
第一步:准备需要分页的数据,可以对数据进行必要的筛选
select * from mytable

第二步:结合伪列,将第一步查询到的数据加上序号
select mt1.*,rownum ro from (第一步查询的数据) mt1

第三步:按照第二步对每行生成的序号对数据进行查询
select * from (第二步查询到的数据) where ro >=11 and ro <=20
完整的sql语句:(参考)

--简单一点的,没有对数据进行过滤
select * from (
    select mt1.*,rownum ro from (
        select * from mytable
    ) mt1
) 
where ro>=11 and ro <=20;
--可以对即将分页的数据进行简单的过滤
select * from (
    select mt1.*,rownum ro from (
        select sno,sname,sex,age,address from mytable order by age desc
    ) mt1
) 
where ro>=11 and ro <=20;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值