Получение строк в DB2

Я знаю в DB2 (используя версию 9.7), я могу выбрать первые 10 строк таблицы, используя этот запрос:

SELECT * 
FROM myTable
ORDER BY id
FETCH FIRST 10 ROWS ONLY

Но как я могу получить, например, строки с 11 по 20? Я не могу использовать первичный ключ или идентификатор, чтобы помочь мне...

Спасибо заранее!

Ответ 1

Здесь пример запроса, который будет получать строки из таблицы, содержит имена состояний, аббревиатуры и т.д.

SELECT *
FROM (
   SELECT stabr, stname, ROW_NUMBER() OVER(ORDER BY stname) AS rownumber
   FROM states
   WHERE stcnab = 'US'
) AS xxx
WHERE rownumber BETWEEN 11 AND 20 ORDER BY stname

Изменить: ORDER BY необходимо, чтобы гарантировать, что нумерация строк согласована между выполнением запроса.

Ответ 2

Вы также можете использовать совместимость с MYSQL. Вам просто нужно активировать векторную совместимость для MYS, а затем использовать Limit и Offset в ваших запросах.

db2set DB2_COMPATIBILITY_VECTOR=MYS
db2stop
db2start