sql >> Database >  >> RDS >> Oracle

Hoe combineer ik zowel mijn top 5-salarissen als mijn onderste 5 om in Oracle weer te geven?

Gebruik UNION of 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;

Je kunt dit ook beknopter schrijven als:

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. PDF gemaakt met FPDF en hoe de pdf op te slaan en op te halen

  2. @ Symbol - een oplossing voor recursieve SELECT-query in Mysql?

  3. mysql-query met AND, OR en NOT

  4. Postgres.app Kon niet starten op poort 5432