Existuje pouze poněkud komplikovaný způsob, jak toho dosáhnout, což je s Oracle skutečnou bolestí. Měli by pouze implementovat klauzuli LIMIT/OFFSET...
Řádkové číslo bude přiřazeno po řádek byl vybrán klauzulí where, takže rownum musí vždy začínat 1. where rownum > x
bude vždy vyhodnocena jako nepravda.
Také rownum je přiřazeno před dokončením řazení , takže rownum nebude ve stejném pořadí, jako říká vaše objednávka.
Oba problémy můžete obejít pomocí dílčího výběru:
select a,b,c, rn from
( select a,b,c, rownum rn from
( select a,b,c from the_table where x = ? order by c)
where rownum < Y)
where rn > X
Pokud nepotřebujete třídit (ale pouze tehdy), můžete zjednodušit na
select a,b,c, rn from
( select a,b,c, rownum rn from the_table where rownum < Y )
where rn > X