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

SQL (ORACLE):ORDER BY dan LIMIT

Sebelum 12.1, Oracle tidak mendukung LIMIT atau OFFSET kata kunci. Jika Anda ingin mengambil baris N hingga M dari kumpulan hasil, Anda memerlukan sesuatu seperti:

SELECT a.*
  FROM (SELECT b.*,
               rownum b_rownum
          FROM (SELECT c.*
                  FROM some_table c
                 ORDER BY some_column) b
         WHERE rownum <= <<upper limit>>) a
 WHERE b_rownum >= <<lower limit>>

atau menggunakan fungsi analitik:

SELECT a.*
  FROM (SELECT b.*,
               rank() over (order by some_column) rnk
          FROM some_table)
 WHERE rnk BETWEEN <<lower limit>> AND <<upper limit>>
 ORDER BY some_column

Salah satu dari pendekatan ini akan mengurutkan memberi Anda baris N hingga M dari hasil yang diurutkan.

Di 12.1 dan yang lebih baru, Anda dapat menggunakan OFFSET dan/atau FETCH [FIRST | NEXT] operator:

SELECT *
  FROM some_table
 ORDER BY some_column
 OFFSET <<lower limit>> ROWS
  FETCH NEXT <<page size>> ROWS ONLY



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ODP.NET Oracle.ManagedDataAccess menyebabkan file sesi jaringan ORA-12537 berakhir

  2. Cara Menulis ke File CSV Menggunakan Oracle SQL*Plus

  3. Bagaimana cara meningkatkan Pengecualian di dalam Pemicu? Apakah ada cara untuk melakukan ini?

  4. Menggunakan pivot pada beberapa kolom dari baris Oracle

  5. Cara mengatasi ORA-28000 akun terkunci