在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

posted @ 2021-02-24 14:13  DHclly  阅读(654)  评论(0编辑  收藏  举报