sql >> Databáze >  >> RDS >> Oracle

SQL:jak používat UNION a objednávat podle konkrétního výběru?

Chcete provést toto:

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

Aktualizovat

Všiml jsem si, že i když máte dvě různé tabulky, spojujete ID, to znamená, že pokud máte 1 v obou tabulkách máte pouze jeden výskyt. Pokud je to požadované chování, měli byste se držet UNION . Pokud ne, změňte to na UNION ALL .

Takže jsem si také všiml, že pokud změníte kód, který jsem navrhl, začnete dostávat oba 1 a 2 (z obou a a b ). V takovém případě možná budete chtít změnit navrhovaný kód na:

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. Jak změnit uživatele na superuživatele v PostgreSQL

  2. Jaké jsou výhody databáze prodejů?

  3. Jak získám datový typ sloupce v Oracle s PL-SQL s nízkými oprávněními?

  4. SQL Server Hromadné vložení souboru CSV s nekonzistentními uvozovkami