Как добавить заказ на результат союза? - PullRequest
3 голосов
/ 17 декабря 2010

В SQL Server 2008 мы можем использовать Union / Unino All, чтобы соединить два результата, но я хочу добавить порядок для окончательного результата. Как это сделать?

То, что я хочу, это что-то вроде:

select id1 as id, * from ...
Union All
select id2 as id, * from ...
order by id

Помогите пожалуйста. Благодарю.

Ответы [ 5 ]

10 голосов
/ 17 декабря 2010

Как отмечается в комментариях, указанный вами псевдокод должен работать, применяя порядок к объединенному набору результатов. Если вы пытаетесь упорядочить таким образом, чтобы два набора результатов содержались по-разному, вам нужно будет ввести столбец искусственной сортировки, например:

select id1 as id, *, 1 as MySortKey from ...
Union All
select id2 as id, *, 2 as MySortKey from ...
order by MySortKey, id
1 голос
/ 09 июля 2014

Вы также можете использовать этот запрос

select * from (
select id1 as id, * from ...
Union All
select id2 as id, * from ...
) aaaa
order by id
0 голосов
/ 06 января 2017

Все эти ответы, включая первоначальную попытку автора, просто сбивают с толку или слишком усложняют.Простое и понятное объяснение здесь:

Как заказать с помощью union

с,

"Просто напишите

Select id,name,age
From Student
Where age < 15
Union
Select id,name,age
From Student
Where Name like "%a%"
Order by name

порядок по применяется к полному набору результатов "Просто используйте UNION ALL вместо UNION здесь.

0 голосов
/ 17 декабря 2010

используйте северный ветер

select OrderID, ProductID from [Order Details] a
UNION all
Select OrderID, EmployeeID from Orders b
order by a.ProductID
0 голосов
/ 17 декабря 2010

используйте этот код:

Select * from 
(select id1 as id, * from ...
Union All
select id2 ad id,  * from ...
order by id) as t
order by t.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...