Solo andata
SELECT *,1 as SortOrder FROM table1
UNION
SELECT *,2 FROM table2
UNION
SELECT *,3 FROM table3
UNION
SELECT *,4 FROM table4
order by SortOrder
quello che succede è che stai usando UNION, sql server quindi rende distinto il set di risultati, per farlo è necessario ordinare le tabelle
UNION ALL
fare la differenza?