2011-08-15 25 views
-1

假設我有兩個柱,國家和城市一個表。如何加入同一個表的不同列?

國家

USA 
Canada 
UK 

NY 
London 

我想加入/合併兩列的記錄,並期望輸出這樣的 -

USA 
Canada 
UK 
NY 
London 

那麼,是什麼將是SQL查詢合併同一個表的不同列記錄?

回答

5
SELECT Country FROM TABLE 
UNION 
SELECT City FROM Table 

應該這樣做。

+0

我在尋找任何快捷方式。因爲如果我需要合併10列,那麼我必須寫10個聯盟!有沒有其他方法? –

+1

您應該可能以不同的方式構造數據? –

+0

號,只是將數據庫模型 – rabudde

3

迴應的評論:「我正在尋找任何快捷方式,因爲如果我需要合併10列以後,我寫10個工會是否有任何其他方式。!?」:

您可以使用逆透視,這意味着你只需要將列名添加到列表中。唯一的事情是觀察數據類型。例如:

--CTE for example only 
;WITH CTE_Locations as (
    select Country = convert(varchar(50),'USA'), City = convert(varchar(50),'NY') 
    union select Country = 'Canada', City = 'Vancouver' 
    union select Country = 'UK', City = 'Manchester' 
) 
--Select a list of values from all columns 
select distinct 
    Place 
from 
    CTE_Locations l 
    unpivot (Place for PlaceType in ([Country],[City])) u