Syed Salman Raza Zaidi Ответов: 0

Подкачка страниц в oracle с использованием row_number


I am doing pagination in oracle with Row_Number, I have 40 records in a table and I am applying paging on it(just for testing these are 40,in real they will be in millions).
This is my query

   <pre lang="SQL"> SELECT * FROM (SELECT a.*, ROW_NUMBER()  OVER (ORDER BY id) AS rnum FROM mytable)WHERE rnum BETWEEN ((:pageNumber-1) * :pageSize) and  (:pageNumber * :pageSize)

Когда я запускаю его с pageNumber=1 и pageSize=3,он возвращает мне 3 записи, но когда я запускаю его с pageNumber=2 и pageSize=3, он возвращает мне 4 записи, включая одну запись из набора записей pagenumber=1.
Фактически, он возвращает 3 записи только на pagenumber=1;
Как я могу исправить эту проблему?Есть ли какой-нибудь альтернативный и лучший подход к пейджингу?Мое заявление находится в asp.net MVC, я не могу хранить записи в сеансе или кэше.

Что я уже пробовал:

Когда я запускаю его с pageNumber=1 и pageSize=3,он возвращает мне 3 записи, но когда я запускаю его с pageNumber=2 и pageSize=3, он возвращает мне 4 записи, включая одну запись из набора записей pagenumber=1.
Фактически, он возвращает 3 записи только на pagenumber=1;
Как я могу исправить эту проблему?Есть ли какой-нибудь альтернативный и лучший подход к пейджингу?Мое заявление находится в asp.net MVC, я не могу хранить записи в сеансе или кэше.

0 Ответов