sql >> Database teknologi >  >> RDS >> Oracle

SQL:hvordan man bruger UNION og bestiller efter et bestemt udvalg?

Du vil gøre dette:

select * from 
(
    SELECT id, 2 as ordered FROM a -- returns 1,4,2,3
    UNION
    SELECT id, 1 as ordered FROM b -- returns 2,1
)
order by ordered

Opdater

Jeg har bemærket, at selvom du har to forskellige tabeller, tilslutter du dig ID'erne, det betyder, at hvis du har 1 i begge tabeller får du kun én forekomst. Hvis det er den ønskede adfærd, bør du holde dig til UNION . Hvis ikke, skift til UNION ALL .

Så jeg bemærker også, at hvis du ændrer til den kode, jeg foreslog, ville du begynde at få både 1 og 2 (fra både a og b ). I så fald vil du måske ændre den foreslåede kode til:

select distinct id from 
(
    SELECT id, 2 as ordered FROM a -- returns 1,4,2,3
    UNION
    SELECT id, 1 as ordered FROM b -- returns 2,1
)
order by ordered


  1. Find afhængige objekter til en tabel eller visning

  2. Forskellen mellem #temptable og ##Temptable?

  3. Pearsons korrelationskoefficientformel i SQL

  4. Hvordan LocalTime() virker i PostgreSQL