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