如何为Union结果添加订单?

Ken*_*hou 4 sql-server sql-server-2008

在SQL Server 2008中,我们可以使用Union/Unino All将两个结果放在一起,但我想为最终结果添加order by.怎么办?

我想要的是:

select id1 as id, * from ...
Union All
select id2 as id, * from ...
order by id
Run Code Online (Sandbox Code Playgroud)

请帮忙.谢谢.

Joe*_*lli 11

如评论中所述,您给出的伪代码应该有效,将顺序应用于组合结果集.如果您尝试以两种结果集保持不同的方式进行排序,则需要引入人工排序列,例如:

select id1 as id, *, 1 as MySortKey from ...
Union All
select id2 as id, *, 2 as MySortKey from ...
order by MySortKey, id
Run Code Online (Sandbox Code Playgroud)