Oracle
 sql >> база данни >  >> RDS >> Oracle

SQL:как да използвам UNION и да поръчам по конкретен избор?

Искате да направите това:

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

Актуализиране

Забелязах, че въпреки че имате две различни таблици, вие се присъединявате към идентификаторите, което означава, че ако имате 1 и в двете таблици получавате само едно събитие. Ако това е желаното поведение, трябва да се придържате към UNION . Ако не, променете на UNION ALL .

Така че също забелязвам, че ако промените кода, който предложих, ще започнете да получавате и двете 1 и 2 (от двете a и b ). В този случай може да искате да промените предложения код на:

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. Йерархичен SQL въпрос

  2. Възможно ли е да се запита колона, разделена със запетая, за конкретна стойност?

  3. Как да намеря първите три най-високи заплати в таблицата emp в oracle?

  4. Списък с територии, поддържани от базата данни на Oracle

  5. Използването на IS NULL или IS NOT NULL при условия на присъединяване - Теоретичен въпрос