Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Phân trang với Oracle và máy chủ sql và phương pháp phân trang chung

Thật không may, các phương pháp để hạn chế phạm vi các hàng được trả về bởi một truy vấn khác nhau giữa các DBMS:Oracle sử dụng ROWNUM (xem câu trả lời của ocdecio), nhưng ROWNUM sẽ không hoạt động trong SQL Server.

Có lẽ bạn có thể đóng gói những khác biệt này bằng một hàm nhận một câu lệnh SQL nhất định và số hàng đầu tiên và cuối cùng và tạo SQL paginatd thích hợp cho DBMS mục tiêu - tức là một cái gì đó như:

sql = paginated ('select empno, ename from emp where job = ?', 101, 150)

cái nào sẽ trả về

'select * from (select v.*, ROWNUM rn from ('
 + theSql
 + ') v where rownum < 150) where rn >= 101'

cho Oracle và một cái gì đó khác cho SQL Server.

Tuy nhiên, lưu ý rằng giải pháp Oracle đang thêm một cột RN mới vào kết quả mà bạn sẽ cần xử lý.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn Oracle để tìm tất cả các lần xuất hiện của một ký tự trong một chuỗi

  2. làm thế nào để chọn các bản ghi chẵn từ một bảng trong oracle?

  3. Sử dụng chuỗi chứa hàm trong truy vấn SQL oracle

  4. Tham chiếu một bảng trong lược đồ khác đang sử dụng tên lược đồ

  5. Đang thoát các ký tự đại diện trong LIKE