oracle 查询当前记录的上一条记录或下一条记录

上一条

select *

  from cms_article a
 where id = (select c.p
               from (select t.id, lag(t.id, 1, 0) over(order by t.sort) as p
                       from cms_article t) c
              where c.id = '8a3e56b6396630260139663fa32d01e1');


下一条


select a.id,a.title
  from cms_article a
 where id = (select c.p
               from (select t.id, lead(t.id, 1, 0) over(order by t.sort,t.eidt_date) as p
                       from cms_article t ) c
              where c.id = '8a3e56b6396630260139663fa32d01e1');
  • 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、付费专栏及课程。

余额充值