使用UNION为2+表覆盖按字母顺序排列的默认ORDER BY?

时间:2011-05-05 19:34:07

标签: sql sql-server tsql sql-server-2008

非常快速的问题......我有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。

有简单的方法吗?

谢谢!

1 个答案:

答案 0 :(得分: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会有所作为吗?