在sql server 中两个结果集排序后 union 报错的解决办法

如图所示:

这样把两个结果集通过 union 组合起来没有问题

此时,我想把两个列表根据 id 分别进行倒序排序后再组合起来,同时保证t1的数据在前,t2的数据在后,则报错了

如果 union 后,再对 结果进行排序又不满足需求,后来思考了一下,发现了一种很巧妙的方法,即额外增加一个排序字段参与排序即可

select id,name,priority
from (select id,name,'1'  priority FROM t1
union
select id2 id,name2 name,'2' priority FROM t2) t
order by t.priority asc,t.id desc

生活,有时候就是很简单,有时候却很要命。
原文地址:https://www.cnblogs.com/DHclly/p/14441146.html