萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> 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

copyright © 萬盛學電腦網 all rights reserved