За съжаление, методите за ограничаване на диапазона от редове, върнати от заявка, варират от една СУБД до друга:Oracle използва ROWNUM (вижте отговора на ocdecio), но ROWNUM няма да работи в SQL Server.
Може би можете да капсулирате тези разлики с функция, която приема даден SQL израз и номера на първия и последния ред и генерира подходящия paginatd SQL за целевата СУБД - т.е. нещо като:
sql = paginated ('select empno, ename from emp where job = ?', 101, 150)
което ще се върне
'select * from (select v.*, ROWNUM rn from ('
+ theSql
+ ') v where rownum < 150) where rn >= 101'
за Oracle и нещо друго за SQL Server.
Имайте предвид обаче, че решението на Oracle добавя нова колона RN към резултатите, с които ще трябва да се справите.