Переглядаючи цей розділ коментарів, я натрапив на дві різні моделі відповіді на запитання. На жаль, для SQL 2012 другий шаблон не працює, тому ось моя "робота навколо"
Замовити за спільною колонкою
Це найпростіший випадок, з яким ви можете зіткнутися. Як зазначали багато користувачів, все, що вам дійсно потрібно зробити, - це додати знак Order By
в кінці запиту
SELECT a FROM table1
UNION
SELECT a FROM table2
ORDER BY field1
або
SELECT a FROM table1 ORDER BY field1
UNION
SELECT a FROM table2 ORDER BY field1
Замовлення за різними стовпцями
Ось де це насправді стає складним. Використовуючи SQL 2012, я спробував верхній пост, і він не працює.
SELECT * FROM
(
SELECT table1.field1 FROM table1 ORDER BY table1.field1
) DUMMY_ALIAS1
UNION ALL
SELECT * FROM
(
SELECT table2.field1 FROM table2 ORDER BY table2.field1
) DUMMY_ALIAS2
Після рекомендації в коментарі я спробував це
SELECT * FROM
(
SELECT TOP 100 PERCENT table1.field1 FROM table1 ORDER BY table1.field1
) DUMMY_ALIAS1
UNION ALL
SELECT * FROM
(
SELECT TOP 100 PERCENT table2.field1 FROM table2 ORDER BY table2.field1
) DUMMY_ALIAS2
Цей код справді скомпілював, але DUMMY_ALIAS1
і DUMMY_ALIAS2
замінює Order By
встановлений у Select
заяві, що робить його непридатним для використання.
Єдиним рішенням, яке я міг придумати і яке працювало для мене, було не використання об’єднання, а натомість змушення виконувати запити індивідуально, а потім мати справу з ними. Отже, в основному, не використовуючи, Union
коли ти хочешOrder By