gpt4 book ai didi

sql - 使用 Oracle 进行分页

转载 作者:行者123 更新时间:2023-12-03 05:01:08 25 4
gpt4 key购买 nike

我对 Oracle 的了解并不如我所愿。我有大约 250k 条记录,我想每页显示 100 条。目前,我有一个存储过程,它使用数据适配器、数据集以及存储过程结果上的 dataadapter.Fill(dataset) 方法将所有 25 万条记录检索到数据集。如果我将“页码”和“每页记录数”作为整数值,我可以作为参数传递,那么返回该特定部分的最佳方法是什么。比如说,如果我传递 10 作为页码,120 作为页数,那么从 select 语句中,它会给我第 1880 到 1200 个,或者类似的东西,我脑子里的数学可能会出错。

我在 .NET 中使用 C# 进行此操作,认为这并不重要,如果我能在 sql 方面正确完成它,那么我应该很酷。

更新:我能够使用布莱恩的建议,而且效果很好。我想进行一些优化,但页面会在 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)

关于sql - 使用 Oracle 进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/241622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com