2010-08-13 65 views
2
SELECT a FROM b 
UNION ALL 
SELECT a FROM c 
UNION ALL 
SELECT a FROM d 

UNION ALL是否保證按順序打印表b,c,d中的記錄?也就是說,沒有任何來自c的記錄。這個問題不適用於特定的DBMS。是否table1 UNION ALL table2保證輸出順序table1,table2?

+1

'ORDER BY'是*僅*這樣,才能保證在標準的SQL查詢結果的順序。 – Gabe 2010-09-05 05:23:56

+0

可能重複的[SQL Server UNION - 什麼是默認ORDER BY行爲](http://stackoverflow.com/questions/421049/sql-server-union-what-is-the-default-order-by-behaviour) – 2014-05-08 21:26:58

回答

8

沒有訂單,沒有訂單保證 - 這是每個數據庫。

而對於標準SQL,將ORDER BY應用於所有聯合查詢的結果。

1

可以肯定的,以便在使用

Select 1 as TableNo,* from a 
union all 
select 2 as TableNo,* from b 
union all 
select 3 as TableNO,* from c 
order by TableNo, [desired column] 
相關問題