【发布时间】:2017-07-21 14:08:40
【问题描述】:
我正在尝试从数据库访问分页结果。按照以下查询:
SELECT * FROM
(
SELECT a.*, rownum r__
FROM
(
SELECT * FROM ORDERS WHERE CustomerID LIKE 'A%'
ORDER BY OrderDate DESC, ShippingDate DESC
) a
WHERE rownum < ((pageNumber * pageSize) + 1 )
)
WHERE r__ >= (((pageNumber-1) * pageSize) + 1)
来自here,我可以实现分页。
我修改了如下查询,以便获得总计数:
SELECT * FROM
(
SELECT a.*, rownum r__ , count(OrderDate)
FROM
(
SELECT * FROM ORDERS WHERE CustomerID LIKE 'A%'
ORDER BY OrderDate DESC, ShippingDate DESC
) a group by OrderDate
)
WHERE r__ between (pageNumber * pageSize )+ 1 and (pageNumber *pageSize) + pageSize;
但我还想计算总页数以及请求的页面是否也是最后一页。我试图获取内部查询的COUNT,以便我可以计算代码中的总页数,但我无法得到它。我试过 COUNT(ORDERDATE) 和分组,但它不起作用。
请告诉我如何实现这一目标。
【问题讨论】:
标签: oracle pagination