分頁查詢排序數據重復和分頁失效問題


  在項目開發過程中使用了大量的分頁查詢,當進行排序的字段的值不唯一時,會導致查詢出很多重復的數據,導致分頁失效。比如按新建日期進行排序,由於日期的值不是唯一的,Oracle的分頁查詢時沒有進行任何排序操作的,Oracle是順序的從數據塊中讀取符合條件的數據返回到客戶端,而Oracle的排序算法不具有穩定性,也就是說,對於鍵值相等的數據,這種算法完成排序后,不保證這些鍵值相等的數據保持排序前的數據,解決這一問題的方法就是在后邊增加一個唯一性列,比如主鍵。

select * from ( select a.*, rownum rn from ( select * from user u order by u.createdate desc, u.id desc ) a where rownum <=20 ) b where b.rn >=0


摘抄與:http://m.itboth.com/d/i22eAb/oracle


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM