sql >> Databasteknik >  >> RDS >> Oracle

Hur kombinerar jag både mina topp 5 löner och lägsta 5 för att visa i Oracle?

Använd UNION eller 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;

Du kan också skriva detta mer kortfattat som:

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. Hur gör man en uppdatering + går med i PostgreSQL?

  2. Fullständig lista över samlingar som stöds av MariaDB

  3. Hur man läser versionsnummer från en databasfil i Android som placeras i tillgångsmappen

  4. vba ODBC ger ett ospecificerat fel när oracle-tabellen har tidsstämpel