Sfortunatamente, i metodi per limitare l'intervallo di righe restituite da una query variano da un DBMS all'altro:Oracle utilizza ROWNUM (vedi la risposta di ocdecio), ma ROWNUM non funziona in SQL Server.
Forse puoi incapsulare queste differenze con una funzione che accetta una determinata istruzione SQL e i numeri della prima e dell'ultima riga e genera l'SQL paginatd appropriato per il DBMS di destinazione, ovvero qualcosa del tipo:
sql = paginated ('select empno, ename from emp where job = ?', 101, 150)
che ritornerebbe
'select * from (select v.*, ROWNUM rn from ('
+ theSql
+ ') v where rownum < 150) where rn >= 101'
per Oracle e qualcos'altro per SQL Server.
Tuttavia, tieni presente che la soluzione Oracle aggiunge una nuova colonna RN ai risultati che dovrai gestire.