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

Chọn ĐẦU N và CHAI N

Cách tốt nhất để giải quyết vấn đề này một phần phụ thuộc vào phiên bản Oracle của bạn. Đây là một giải pháp rất đơn giản (và tôi nghi ngờ là rất hiệu quả) bằng cách sử dụng match_recognize , được bổ sung trong phiên bản 12.1.

Tôi minh họa nó bằng cách sử dụng EMPLOYEES trong HR tiêu chuẩn giản đồ, sắp xếp theo SALARY . Mẹo duy nhất ở đây là chọn năm hàng trên cùng và dưới cùng, và bỏ qua mọi thứ ở giữa; đó ("bỏ qua") là {- ... -} toán tử thực hiện trong pattern mục con.

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. Làm thế nào để sử dụng nếu tồn tại - nếu không tồn tại trong PL / SQL?

  2. Xếp tầng Xóa truy vấn

  3. SQLPlus varchar2 xuất ra các khoảng trắng

  4. Oracle:Cập nhật cột bảng bằng ROWNUM kết hợp với mệnh đề ORDER BY

  5. Tệp cấu hình để giữ các tham số chuỗi kết nối trong Java