2017-04-02 59 views
0

任何人都可以请帮我我一直在努力查询包含联合n多个表的联接..我已经得到了理想的结果,但我想要得到这些结果在一些特定的顺序,所以整个结果按照一列进行排序。 这里是代码段的我的工作:在联盟条款排序

select name, age 
from UserUni 
order by age 
union all 
select age, Name 
from UserOffice 
order by age 
+0

请参阅:http://stackoverflow.com/questions/4715820/how-to-order-by-with-union,即超过100个upvotes的答案。 – ira

回答

0

当我们使用我们不能使用这两个语句的顺序。因为最后的联合给出了一个结果,所以怎么可能使用两个语句的语句。 你可以在这里查看细节。

https://finalcodingtutorials.blogspot.ae/2017/03/order-by-clause-with-union-in-sql-server.html

希望它能够解决您的问题将让你知道的陈述完整详细信息或工会和秩序。

+0

这个问题已经通过把工会放在工会声明的最后解决了。这个博客给出的细节非常有意义。谢谢 –

1

而就在UNION查询的末尾添加一个ORDER BY条款,并应适用于整个查询:

select name, age 
from UserUni 
union all 
select name, age 
from UserOffice 
order by age 

请注意,我交换了UNION查询后半部分出现的列的顺序,因为将年龄和名称放在同一列中是没有意义的。通常在UNION查询中要求所有列的类型和数量在查询的两半中相同。一个例外可能是MySQL,它似乎可以混合数字和文本,但即使在这种情况下,一些隐式类型转换也会在引擎盖下发生。