2015-10-06 66 views
0

例子:SQL查詢 - 訂購的聯盟(爲了通過進入時)的我有什麼

SELECT [thing] FROM [A] 
UNION ALL 
SELECT [thing] FROM [B] 
UNION ALL 
SELECT [thing] FROM [C] 
UNION ALL 
SELECT [thing] FROM [D] 
UNION ALL 
SELECT [thing] FROM [E] 

在我的工會我想事情由最古老進行排序,以最新的入境日期。所以,如果我今天在表A中爲我的東西字段添加一個值,我希望看到該值在我的聯合查詢中排序到我的列的底部。有沒有辦法通過使用Order By來做到這一點?

+0

它取決於您是否在查詢的所有表中維護某種排序的'entry_date'列。如果你沒有定義該列,那麼不,你不能。 – sstan

回答

0

selectunion all中的表中的日期列並將其用於orderthing列。這是因爲使用union時不能使用order by。它只能在所有查詢結束時指定。

select thing from 
(
SELECT [thing],[datecolumn] as dt FROM [A] 
UNION ALL 
SELECT [thing],[datecolumn] FROM [B] 
UNION ALL 
SELECT [thing],[datecolumn] FROM [C] 
UNION ALL 
SELECT [thing],[datecolumn] FROM [D] 
UNION ALL 
SELECT [thing],[datecolumn] FROM [E] 
) t 
order by dt 
+0

我很抱歉打擾你,但你能看看我有類似的問題嗎? http://stackoverflow.com/questions/41303336/select-top-with-multiple-union-and-with-order-by – Dillinger