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

sql (oracle) để chọn 10 bản ghi đầu tiên, sau đó là 10 bản ghi tiếp theo, v.v.

Chỉ có một cách khá phức tạp để làm điều này, đó là một nỗi đau thực sự với Oracle. Họ chỉ nên triển khai điều khoản LIMIT / OFFSET ...

Rownum được chỉ định sau hàng đã được chọn bởi mệnh đề where, do đó rownum phải luôn bắt đầu bằng 1. where rownum > x sẽ luôn luôn đánh giá thành false.

Ngoài ra, rownum được chỉ định trước khi hoàn tất việc phân loại , do đó, rownum sẽ không theo thứ tự như đơn đặt hàng của bạn.

Bạn có thể giải quyết cả hai vấn đề với một lựa chọn phụ:

 select a,b,c, rn from 
    ( select a,b,c, rownum rn from 
         ( select a,b,c from the_table where x = ? order by c)
      where rownum < Y)
  where rn > X

Nếu bạn không cần sắp xếp (nhưng chỉ sau đó), bạn có thể đơn giản hóa thành

 select a,b,c, rn from
     ( select a,b,c, rownum rn from the_table where rownum < Y )
   where rn > X


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. .Patch_storage lớn

  2. Các đường mòn kiểm tra Oracle DB

  3. doanh thu trung bình của quý với doanh thu trung bình của quý trước

  4. Làm cách nào để chuyển mã trả về từ tập lệnh Oracle trở lại tập lệnh WINDOWS Batch đã gọi nó?

  5. Phát triển cho Windows Server 2003 64 bit trên Windows XP 32 bit