Bohužel metody pro omezení rozsahu řádků vrácených dotazem se liší od jednoho DBMS k druhému:Oracle používá ROWNUM (viz odpověď ocdecio), ale ROWNUM nebude fungovat na SQL Server.
Možná můžete tyto rozdíly zapouzdřit pomocí funkce, která převezme daný příkaz SQL a čísla prvního a posledního řádku a vygeneruje vhodné stránkované SQL pro cílový DBMS – tj. něco jako:
sql = paginated ('select empno, ename from emp where job = ?', 101, 150)
který by se vrátil
'select * from (select v.*, ROWNUM rn from ('
+ theSql
+ ') v where rownum < 150) where rn >= 101'
pro Oracle a něco jiného pro SQL Server.
Pamatujte však, že řešení Oracle přidává k výsledkům nový sloupec RN, se kterými se budete muset vypořádat.