Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara membatasi jumlah baris yang dikembalikan oleh kueri Oracle setelah memesan?

Anda dapat menggunakan subquery untuk ini seperti

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

Lihat juga topik Tentang ROWNUM dan pembatasan hasil di Oracle/AskTom untuk informasi lebih lanjut.

Perbarui :Untuk membatasi hasil dengan batas bawah dan atas, semuanya menjadi sedikit lebih membengkak dengan

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;

(Disalin dari artikel AskTom tertentu)

Perbarui 2 :Mulai dengan Oracle 12c (12.1) ada sintaks yang tersedia untuk membatasi baris atau mulai dari offset.

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

Lihat jawaban ini untuk lebih banyak contoh. Terima kasih kepada Krumia atas petunjuknya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbedaan antara DATE oracle dan TIMESTAMP

  2. Bagaimana cara mengeksekusi skrip Oracle sql melalui kode java

  3. Cara mengembalikan parameter keluaran Oracle dari prosedur tersimpan di .NET

  4. Apakah mungkin menggunakan pengembalian dalam prosedur tersimpan?

  5. Bisakah kita menggunakan threading di PL/SQL?