Oracle
 sql >> Baza danych >  >> RDS >> Oracle

SQL:jak korzystać z UNION i zamawiać według konkretnego wyboru?

Chcesz to zrobić:

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

Aktualizacja

Zauważyłem, że chociaż masz dwie różne tabele, dołączasz identyfikatory, to znaczy, jeśli masz 1 w obu tabelach otrzymujesz tylko jedno wystąpienie. Jeśli jest to pożądane zachowanie, powinieneś trzymać się UNION . Jeśli nie, zmień na UNION ALL .

Zauważyłem też, że jeśli zmienisz kod, który zaproponowałem, zaczniesz otrzymywać oba 1 i 2 (z obu a i b ). W takim przypadku możesz zmienić proponowany kod 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dynamiczne przestawianie wierszy na kolumny w Oracle

  2. Warunkowa SUMA na Oracle

  3. Błąd:ORA-01704:literał ciągu jest za długi

  4. Tworzenie listy wartości oddzielonych przecinkami w instrukcji Oracle SQL

  5. Błąd ORA-12514 po ponownym uruchomieniu serwera