資料庫問題 oracle查詢出現重複資料

2021-09-05 11:45:11 字數 822 閱讀 9954

select

*from

( select

row_.*,

rownum rownum_

from

( select

*from

pg_jdlk_match_result this_  ) row_

where

rownum <= ?)

where

rownum_ > ?

資料量不是一條兩條,而是很多條,需要分頁顯示,而上面這個sql語句是最常用的分頁方式,而rownum是乙個偽列,而我們經常誤認為我們在存入資料的時候,oracle已經

幫我們把資料排序了,顯示的順序是永遠固定的。實際上並不是這樣。oracle並沒有對我們的資料做任何處理,當這條資料的實體地址發生變化時,資料展示的順序就會發生變化

從而造成資料庫的資料是正確的,而展示的資料會出現重複資料的尷尬情況。

而有些時候,這條資料的實體地址(暫且這麼叫)並不會發生變化,比如資料量小的時候。

而資料量超過一定量,oracle就會做一些優化,這種優化會把表裡的資料打亂。

在前台展示效果為:(第一列第一條。未刪除或其他個性操作)第一次查詢時是a同學,第二次查詢時則是b同學。

解決方法:

查詢條件加入排序,注意:排序的列的值必須是唯一的

再畫個圖:

假設每頁展示兩條資料

第一次查詢如圖1所示, 展示1、2

第二次查詢如圖2所示,還展示兩條,則展示1、4

則會出現重複資料

jsp對應資料庫,基礎 多表查詢出現的問題

多表查詢出現的問題 傳統方式查詢的弊端 也就是結果集的封裝問題,這裡凸顯出了mybatis的優點 多表聯查,沒辦法封裝到乙個list中,所以就用maplisthandler private void loadorderitems order order catch sqlexception e ma...

oracle資料庫查詢亂碼問題

rdbms 11.2.0.4 昨天運維提出了乙個問題,在securecrt上執行乙個查詢的時候返回0,但是在plsql developer上查詢的時候,返回是有值的。這個語句中有個條件,where status in 漢字1 漢字2 漢字3 懷疑是字符集的問題,導致傳送到伺服器上的時候是亂碼,按照這...

python連線資料庫查詢出現亂碼解決方案

前一段時間,我使用python連線sql server資料庫來完成在資料庫的查詢工作,資料庫的編碼使用的是gbk編碼,在查詢的時候,查詢出的結果出現了亂碼,有三種解決方案可以解決。1.可以通過將資料的的編碼方式改為utf 8解決這個問題。2.可以在查詢的時候將sql語句的字段轉換為nvarchar型...