Я разрабатываю веб-приложение и потребность разбить на страницы заказанный результаты. Я обычно использую ПРЕДЕЛ/СМЕЩЕНИЕ с этой целью.
Который является лучшим способом разбить на страницы заказанный результаты в Oracle? Я видел, что некоторые образцы используют rownum и подзапросы. Это - путь? Могли Вы давать мне образец для перевода этого SQL к Oracle:
SELECT fieldA,fieldB
FROM table
ORDER BY fieldA
OFFSET 5 LIMIT 14
(Я использую Oracle 10 г, если это имеет значение),
Спасибо!
Ответ: Используя ссылку, предоставленную ниже karim79, этот SQL был бы похож:
SELECT * FROM (
SELECT rownum rnum, a.*
FROM(
SELECT fieldA,fieldB
FROM table
ORDER BY fieldA
) a
WHERE rownum <=5+14
)
WHERE rnum >=5
Вам нужно будет использовать псевдоколонку rownum
, чтобы ограничить результаты. См. Здесь:
http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html
http://www.oracle.com/technetwork/issue-archive/2006/ 06-sep / o56asktom-086197.html