用Oracle分頁我對甲骨文不太熟悉。我有大約250 K的記錄,我想每頁顯示100張。目前,我有一個存儲過程,它使用數據適配器將所有25萬條記錄檢索到DataSet,還有DataSet和DataAdapter.Fill(DataSet)方法。如果我有“頁面編號”和“每頁記錄數”作為整數值,我可以作為參數傳遞,那么返回該特定部分的最佳方法是什么。比方說,如果我從SELECT語句中傳遞10作為頁碼,120作為頁數,它會給我1880到1200,或者諸如此類的東西,我腦子里的數學可能會消失。我正在用C#在.NET中這樣做,認為這并不重要,如果我能在SQL方面正確地實現它,那么我應該很酷。更新:我能夠使用Brian的建議,而且效果很好。我想進行一些優化,但是頁面將在4到5秒內出現,而不是一分鐘,而且我的分頁控件能夠很好地集成到我的新存儲過程中。
3 回答

慕姐4208626
TA貢獻1852條經驗 獲得超7個贊
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)

湖上湖
TA貢獻2003條經驗 獲得超2個贊
select * from ( select /*+ first_rows(25) */ object_id,object_name, row_number() over (order by object_id) rn from all_objects) where rn between :n and :m order by rn;
- 3 回答
- 0 關注
- 815 瀏覽
添加回答
舉報
0/150
提交
取消