Oracle
 sql >> база данни >  >> RDS >> Oracle

Пейджинг с Oracle и sql сървър и общ метод за пейджинг

За съжаление, методите за ограничаване на диапазона от редове, върнати от заявка, варират от една СУБД до друга: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 към резултатите, с които ще трябва да се справите.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не разбирам Collation? (Mysql, RDBMS, набори от символи)

  2. Въведете подзаявки ORM

  3. ORA-24550:получен сигнал:[si_signo=6] грешка

  4. Oracle как да експортирате заявка в текстов/csv файл

  5. Какво представлява Oracle SQL и PL/SQL? Всичко, което един начинаещ трябва да знае