Еднопосочен
SELECT *,1 as SortOrder FROM table1
UNION
SELECT *,2 FROM table2
UNION
SELECT *,3 FROM table3
UNION
SELECT *,4 FROM table4
order by SortOrder
това, което се случва, е, че използвате UNION, sql сървърът след това прави резултатния набор различен, за да направи това, трябва да сортира таблиците
Прави UNION ALL
направи разлика?