Oracle 分页语句

Oracle数据库的分页语句主要有以下几种方式,这些方法各有优缺点,适用于不同的场景和需求。

1. 使用ROWNUM进行分页

ROWNUM是Oracle中的一个伪列,用于表示查询结果中每行的行号。使用ROWNUM进行分页时,通常需要将查询分为两步或更多步,因为ROWNUM是在结果集生成后才被赋予的,且在一个查询中只能使用一次。

示例:查询第2页,每页10条记录的数据

SELECT * FROM (  
    SELECT a.*, ROWNUM rn FROM (  
        SELECT * FROM your_table ORDER BY some_column  -- 根据需要排序  
    ) a WHERE ROWNUM <= 20  -- 2页*10条=20  
) WHERE rn > 10;  -- 跳过前10条,取后10条

优点

  • 简单易懂

缺点

  • 在查询大量数据时性能较差
  • 需要嵌套查询,语句较为复杂

2. 使用OFFSET和FETCH进行分页(Oracle 12c及以上版本)

Oracle 12c引入了OFFSET和FETCH子句,使得分页查询变得更加简单和直观。

示例:查询第2页,每页10条记录的数据

SELECT * FROM your_table  
ORDER BY some_column  
OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值