联合All in SQL server with Order By For All Table

时间:2014-11-07 13:14:18

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

我有两个表TABLE_ATABLE_B,我使用Union All在SQL Server 2008中跟随Order By获取记录

SELECT  * 
FROM 
 (
   SELECT *, 1 sortby FROM TABLE_A 
   UNION ALL 
   SELECT *, 2 sortby FROM TABLE_B
  ) Temp
ORDER   BY sortby

但问题是上面的语句Order By只有来自Table_ATable_B的数据不在Order By,我想在两个表上添加Order By条件,数据应该来自TABLE_A然后在从TABLE_B进行资产分配之后。

如何做到这一点。

2 个答案:

答案 0 :(得分:8)

order子句

中添加要排序的其他列
SELECT  * 
FROM 
 (
   SELECT *, 1 sortby FROM TABLE_A 
   UNION ALL 
   SELECT *, 2 sortby FROM TABLE_B
  ) Temp
ORDER BY sortby, other_column_of_result

答案 1 :(得分:1)

我们也可以这样做

SELECT  * 
FROM 
 (
   SELECT *, 1 firstsortby, 2 secondsortby FROM TABLE_A 
   UNION ALL 
   SELECT *, 2 firstsortby, 1 secondsortby FROM TABLE_B
  ) Temp
ORDER BY firstsortby, secondsortby