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

Làm cách nào để giới hạn số hàng được trả về bởi một truy vấn Oracle sau khi đặt hàng?

Bạn có thể sử dụng một truy vấn con cho điều này như

select *
from  
( select * 
  from emp 
  order by sal desc ) 
where ROWNUM <= 5;

Ngoài ra, hãy xem chủ đề Về ROWNUM và giới hạn kết quả tại Oracle / AskTom để biết thêm thông tin.

Cập nhật :Để giới hạn kết quả với cả giới hạn thấp hơn và giới hạn trên, mọi thứ trở nên cồng kềnh hơn một chút với

select * from 
( select a.*, ROWNUM rnum from 
  ( <your_query_goes_here, with order by> ) a 
  where ROWNUM <= :MAX_ROW_TO_FETCH )
where rnum  >= :MIN_ROW_TO_FETCH;

(Được sao chép từ AskTom-article được chỉ định)

Cập nhật 2 :Bắt đầu với Oracle 12c (12.1), có sẵn một cú pháp để giới hạn các hàng hoặc bắt đầu ở các khoảng lệch.

SELECT * 
FROM   sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;

Xem câu trả lời này để biết thêm ví dụ. Cảm ơn Krumia về gợi ý.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để xuất dữ liệu từ Oracle SQL Developer sang Excel?

  2. Bộ sưu tập PL / SQL:Bảng lồng nhau trong cơ sở dữ liệu Oracle

  3. Đảo ngược chuỗi Word bằng Word sử dụng SQL

  4. Hàm COLLATION () trong Oracle

  5. Trả về kết quả của một truy vấn sql dưới dạng JSON trong oracle 12c