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

Làm cách nào để kết hợp cả 5 mức lương cao nhất và 5 mức lương thấp nhất để hiển thị trong Oracle?

Sử dụng UNION hoặc UNION ALL :

SELECT SAL FROM
(
SELECT DISTINCT SAL FROM EMP WHERE SAL IS NOT NULL ORDER BY SAL DESC
)
WHERE ROWNUM < 6
UNION ALL
SELECT SAL FROM
(
SELECT DISTINCT SAL FROM EMP WHERE SAL IS NOT NULL ORDER BY SAL ASC
)
WHERE ROWNUM < 6;

Bạn cũng có thể viết điều này ngắn gọn hơn là:

SELECT SAL
FROM (SELECT DISTINCT SAL,
             DENSE_RANK() OVER (ORDER BY sal) as seqnum_asc,
             DENSE_RANK() OVER (ORDER BY sal) as seqnum_desc
      FROM EMP
      WHERE SAL IS NOT NULL
     ) s
WHERE seqnum_asc < 6 OR seqnum_desc < 6;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nó nói rằng tôi không có hàng được chọn?

  2. Khung đồng bộ:Oracle / SQLServer

  3. Trình kích hoạt Oracle SQL để tự động đặt giá trị cột

  4. Sao lưu trực tuyến Vs ngoại tuyến

  5. Giá trị trả về của oci_parse