亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用Oracle分頁

用Oracle分頁

弒天下 2019-08-03 07:03:37
用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個贊

像這樣的事情應該有效:來自Frans Bouma的博客

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)



查看完整回答
反對 回復 2019-08-04
?
湖上湖

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;



查看完整回答
反對 回復 2019-08-04
  • 3 回答
  • 0 關注
  • 815 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號