非常快的问题...我有 4 个表,它们是 UNION
组合在一起的,如下所示:
SELECT * FROM table1
UNION
SELECT * FROM table2
UNION
SELECT * FROM table3
UNION
SELECT * FROM table4
在不指定 ORDER BY
的情况下,查询按字母升序的第一列排序(在我的例子中恰好是 varchar
类型)。我也不想要 ORDER BY [Column1] DESC
。
我只是想按与表本身相同的顺序对结果进行排序 UNION
-ed。 1、2、3、4。
有没有一种简单的方法可以做到这一点?
谢谢!!
最佳答案
单向
SELECT *,1 as SortOrder FROM table1
UNION
SELECT *,2 FROM table2
UNION
SELECT *,3 FROM table3
UNION
SELECT *,4 FROM table4
order by SortOrder
发生的事情是你正在使用 UNION,然后 sql server 使结果集不同,为了做到这一点,它需要对表进行排序
UNION ALL
有区别吗?
关于sql - 使用 2 个以上表的 UNION 覆盖按字母顺序排列的默认 ORDER BY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5903149/