2012-06-29 108 views
2

在SQL Server中,如何選擇多個值到臨時表中?T-SQL,select into

例如,我想把'A','B'放到#tmp表中,怎麼做?

select 'A' 
union 
select 'B' 
into #tmp 

回答

3

你需要把 「變成」 第一選擇,再加上,如果你真的這樣做文字,那麼你必須給它一個列名的標籤。

Select 'A' As 'Label' 
Into #tmp 
Union 
Select 'B' 
+0

+1:整潔 - 不知道這會工作,並插入兩行。 –

+1

但我建議不要使用「單引號」作爲別名。該語法的某些形式已被棄用,並且與實際字符串文字混合在一起時,對於那些沒有編寫代碼的人來說,這可能會非常令人困惑。我更喜歡'[方括號]',但我的第一個選擇是使用不需要分隔符的別名/列名。 –

+0

@AaronBertrand。這很有趣,(這隻老狗變化很慢)。我可以告訴你的是1)它在SQL 2012中運行時沒有抱怨。 2)SQL 2012文檔*僅*提到方括號。 3)顯然,ANSI也不是!雙引號是! (第三隻手,介意你https://connect.microsoft.com/SQLServer/feedback/details/125027/unclear-deprecation-of-column-alias-in-select-list) – Jim

0
insert #tmp (yourcol) 
    select 'A' union 
    select 'B' 
1

把它包裝成一個子查詢(或CTE)

select * into #tmp 
from 
(
    select col='A' 
    union select col='B' 
) sub 
+0

我發現這個更清潔,比@ Jim更直觀。 FWIW。 –

0
insert into #tmp 
select 'A' 
union 
Select 'B' 
+1

有了這個,你必須明確地創建表格。 – SupremeDud