【问题标题】:Paginating result set in oracle databaseoracle数据库中的分页结果集
【发布时间】:2014-05-22 04:50:40
【问题描述】:
我有以 oracle db 作为后端的高事务服务。许多客户端会调用我们的服务来获取数据。当我们收到数据请求时,我们需要查询 db,获取结果集并发送它们以分页方式。我不想要查询。但想知道真正发生了什么。说如果结果集有 20,000 行,如果我们需要在响应中每页发送 100 个数据,我怎么能提到还有剩余集数据,在响应中,以便客户端需要点击我们的服务以获取下一页?假设响应是 json 格式。resposne 格式应该是什么样的?我是 oracle 的新手。谢谢你的帮助。
【问题讨论】:
标签:
sql
database
oracle
pagination
【解决方案1】:
要分页选择数据,试试
select order_id, order_descr
from (select order_id, order_descr, row_number() over(order by order_date desc) r
from orders
where customer_id = 123)
where r between 1 and 101
显示customer_id 123的订单1到100(第一页)。
如果您在客户端收到超过 100 行数据,则存在更多数据。
带有 order by 子句的内部 select 语句是必要的。