最近在做項目的時候發現一個問題,oracle 在查詢分頁數據的時候,有幾條數據重復查詢了,並且有幾條數據在分頁的時候消失了。百度了一下發現,ORACLE 在查詢數據的時候返回的行不是固定的,他只是按照順序從數據中讀取符合條件的數據返回到客戶端,給用戶誤解為默認排序。
然而,當我加上排序的時候,還是查詢有重復的數據,(指第一頁數據在第二頁也查詢出來了),這是我就疑問了,當我檢查數據的時候,發現我排序的字段有空的情況,而且有很多條,導致排序返回的 偽列並不是唯一的。
總結:
oracle 分頁查詢數據的時候必須要有排序;
排序的字段必須返回必須是唯一的,比如主鍵,或者添加多個排序。