2012-11-20 45 views
0

我有三個表具有完全相同的列,唯一的區別是這些列中的數據。我想知道是否(以及如何)將列合併到一個表中。我知道,如果合併兩個表,數據可以通過布爾值區分,但是可以用三個表完成同樣的工作嗎?將3個表合併到一個表中

任何幫助,將不勝感激。

回答

4

如果列和數據類型相同,則可以使用UNION ALL查詢。

select col1, col2, 'table1' as src 
from table1 
union all 
select col1, col2, 'table2' as src 
from table2 
union all 
select col1, col2, 'table3' as src 
from table3 

該版本將包含任何重複的記錄,如果你不想重複,那麼你可以使用UNION這將刪除任何重複的記錄。

如果數據類型不同,那麼您將需要將數據轉換爲相同類型。

+1

我會添加一列來顯示數據來自哪個源表,特別是如果這將用於提供某種「合併」表。 –

+0

@AaronBertrand編輯,謝謝。出於這些原因,我通常會包含該值。 – Taryn