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

Bagaimana cara menggabungkan 5 gaji teratas dan 5 terbawah untuk ditampilkan di Oracle?

Gunakan UNION atau 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;

Anda juga dapat menulis ini dengan lebih ringkas sebagai:

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. Permintaan SQL dengan klarifikasi ON DUPLICATE KEY UPDATE diperlukan

  2. Panggil fungsi Oracle dari Java

  3. Fungsi jendela SORT mahal, bisakah kita mengatasinya?

  4. Bagaimana cara menghitung nilai kolom di Oracle 10g?

  5. Permintaan Oracle SQL untuk mengecualikan baris yang berisi karakter non-numerik