程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle分頁查詢排序數據重復問題

Oracle分頁查詢排序數據重復問題

編輯:關於Oracle數據庫

       在項目開發過程中大量的使用了分頁查詢,當想要讓數據按照日期排序時,出現了很多重復的數據出現。 造成這一問題出現的原因是:在數據中,日期的值不是唯一的。我們知道

      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

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved