ORACLE分页查询、第一条和最后一条记录

Oracle分页查询格式:
例如查询第10页到20页数据

SELECT *
  FROM (  SELECT ROWNUM AS rowno, t.*
             FROM emp t
          WHERE ROWNUM <= 20) TableA
 WHERE TableA.rowno >= 10;

oracle分页ROWNUM只能用<或者<=,且必须大写,否则报错!

查询第一条和最后一条

select * from (select * from <table> order by <key>) where rownum=1;
union
select * from (select * from <table> order by <key> desc) where rownum=1;

参考文章
https://blog.csdn.net/use_admin/article/details/83622414

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 中,您可以使用 `ROWNUM` 来进行分页,并且可以将当前页的最后一条记录作为下一页查询的条件,具体步骤如下: 1. 首先,您需要确定每页要显示的记录数(假设为 `page_size`)和要查询的页数(假设为 `page_number`)。 2. 接下来,您可以使用以下 SQL 语句来查询指定页数的记录: ``` SELECT * FROM ( SELECT your_table.*, ROWNUM AS rn FROM your_table WHERE ROWNUM <= page_number * page_size ) WHERE rn > (page_number - 1) * page_size; ``` 这个语句会先查询出前 `page_number * page_size` 条记录,然后使用子查询给每行记录添加一个行号(即 `ROWNUM`),最后使用外部查询来筛选出当前页的记录。其中,`(page_number - 1) * page_size` 表示当前页的第一条记录在结果集中的行号,而 `(page_number * page_size)` 则表示下一页的第一条记录在结果集中的行号。 3. 如果您希望将当前页的最后一条记录作为下一页查询的条件,可以将查询语句修改为: ``` SELECT * FROM ( SELECT your_table.*, ROWNUM AS rn FROM your_table WHERE ROWNUM <= page_number * page_size ) WHERE rn > ((page_number - 1) * page_size) AND rn <= (page_number * page_size) ``` 这个语句会查询出当前页的所有记录,同时保留每行记录的行号。然后,您可以使用以下 SQL 语句来查询下一页的记录: ``` SELECT * FROM ( SELECT your_table.*, ROWNUM AS rn FROM your_table WHERE ROWNUM > last_rownum ) WHERE ROWNUM <= page_size; ``` 这个语句会查询出行号大于上一页最后一行的所有记录,并且限制结果集的行数为 `page_size`。其中,`last_rownum` 表示上一页最后一行的行号。您可以将这个值保存在代码中,以便在下一页查询时使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值