Выбранное количество записей из базы данных в DB2 - PullRequest
0 голосов
/ 02 июня 2010

Мне нужно получать только 50 записей одновременно из базы данных (DB2), для этого я использовал Row_Number, но теперь люди говорят, что этот Row_Number нестабилен и в нем есть ошибки, так что теперь я Я должен написать другой запрос для того же самого, поскольку мне нужно выбрать только 50 записей за раз.

Так, пожалуйста, может ли кто-нибудь помочь мне за то же самое?

Заранее спасибо.

Я использовал запрос

SELECT PLC.* 
FROM
     (SELECT 
          ROW_NUMBER() OVER (ORDER BY PRDLN_CTLG_OID) AS Row,
          PRDLN_CTLG_OID, 
          PRODUCT_LINE_OID      AS  PRODUCT_LINE_OID, 
          RTRIM(CATALOG_ID)             AS  CATALOG_ID,
      FROM 
          PROD_LINE_CATALOG 
      WHERE 
          PRODUCT_LINE_OID = :productLineOID AND ACTV_IND = 1 
      ORDER BY CATALOG_ID) PLC
WHERE  
    Row >= :startIndex AND Row <= :endIndex
ORDER BY 
    PLC.CATALOG_ID DESC 
WITH UR

Ответы [ 2 ]

3 голосов
/ 02 июня 2010

используйте предложение fetch

FETCH FIRST 50 ROWS ONLY

редактировать

Похоже, вы используете значения startIndex и endIndex. Я понимаю, что вы сравниваете их с Row, но у вас есть другой индекс для сравнения? Если нет, и вы настаиваете на переходе от Row_Number, возможно, для таблицы нужен другой индекс.

Select PLC.* From (Select omitting row_number())
Where yournewindex >= startIndex
Fetch first 50 rows only
0 голосов
/ 26 ноября 2013

Кто-то уже ответил на этот вопрос. Вы просите нумерацию страниц, если я не ошибаюсь.

Самый быстрый и эффективный способ разбивки на страницы с поиском SQL DB2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...