Получение строк в 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