sql – 使用Oracle进行分页

我不熟悉Oracle,我想成为。我有大约25万条记录,我想要每页显示100条记录。目前,我有一个存储过程,使用数据适配器和数据集,以及对存储过程的结果的dataadapter.Fill(dataset)方法检索数据集的所有四分之一百万条记录。如果我有“页码”和“每页记录数”作为整数值,我可以作为参数传递,什么是最好的方法来回到那个特定的部分。说,如果我通过10作为页码,120作为页数,从select语句它会给我的1880到1200年,或类似的东西,我的数学在我的头可能已关闭。

我在.NET中使用C#做这个,认为这不重要,如果我可以得到它正确的sql一边,那么我应该很酷。

更新:我能够使用Brian的建议,它的工作伟大。我想要进行一些优化,但页面是在4到5秒而不是一分钟,我的分页控制能够很好地与我的新的存储过程集成。

这样的东西应该工作:From Frans Bouma’s Blog

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)
http://stackoverflow.com/questions/241622/paging-with-oracle

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:sql – 使用Oracle进行分页