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

Pilih TOP N dan BOTTOM N

Cara terbaik untuk mengatasi masalah ini sebagian bergantung pada versi Oracle Anda. Berikut ini adalah solusi yang sangat sederhana (dan, saya kira, sangat efisien) menggunakan match_recognize klausa, ditambahkan dalam versi 12.1.

Saya mengilustrasikannya menggunakan EMPLOYEES tabel di HR standar skema, memesan berdasarkan SALARY . Satu-satunya trik di sini adalah memilih lima baris atas dan bawah, dan mengabaikan semua yang ada di antaranya; bahwa ("mengabaikan") adalah apa {- ... -} yang dilakukan operator dalam pattern sub-klausa.

select employee_id, first_name, last_name, salary
from   hr.employees
match_recognize(
  order by salary desc
  all rows per match
  pattern ( a{5} {- a* -} a{5} )
  define a as 0 = 0             -- For reasons known only to Oracle, DEFINE is required.
);

EMPLOYEE_ID FIRST_NAME           LAST_NAME                     SALARY
----------- -------------------- ------------------------- ----------
        100 Steven               King                           24000
        101 Neena                Kochhar                        17000
        102 Lex                  De Haan                        17000
        145 John                 Russell                        14000
        146 Karen                Partners                       13500
        135 Ki                   Gee                             2400
        127 James                Landry                          2400
        136 Hazel                Philtanker                      2200
        128 Steven               Markle                          2200
        132 TJ                   Olson                           2100


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan `SELECT` untuk memanggil fungsi

  2. REGEXP_SUBSTR() Fungsi di Oracle

  3. Siapa diana, dan mengapa dia tidak membiarkan objek database saya dikompilasi?

  4. Mengkonsumsi layanan web dan memasukkan CLOB menggunakan Node.js ke tabel Oracle Database

  5. Panggilan Terjebak ke fungsi yang tidak ditentukan oci_connect() menggunakan XAMPP