2016-08-03 20 views
-1

我有一個想要放入temp/variable表的名稱列表,但想不出如何去做。SQL Server - 使用一行字符串創建一個表

這裏是一個虛擬列表....

NAMES 
McLovin 
Deckard 
Mufasa 
DeLarge 

這是一個字符串我還會向你發送給我,我需要洗對實際表,所以我想這個地方的溫度場,但我只是想不出如何去做。

CREATE TABLE [#test] (
NAMES varchar (20)); 

INSERT INTO [#test] ([NAMES]) 
VALUES ('McLovin'); 

INSERT INTO [#test] ([NAMES]) 
VALUES ('Deckard'); 

以上是我能想到的唯一方法。我是SQL新手,所以我仍然在學習邏輯。任何指導將不勝感激。

乾杯。

+0

此外,您可能已搜索多個插入。無需發佈重複的虛擬問題。 –

+1

[在單個SQL查詢中插入多行?]可能重複(http://stackoverflow.com/questions/452859/inserting-multiple-rows-in-a-single-sql-query) –

+0

如果您打算用直接的sql而不是通過ETL工具來做,這是要走的路。我相信在SQL服務器中,你可以在插入時執行多個值INSERT INTO #test VALUES('McLovin'),('Deckard'),('Mufasa');'通常當我有一個小的值列表時,我只是將它們放入excel並使用字符串連接構建插入'=「INSERT INTO [#test] VALUES(''&A1 & "');」'然後將其複製到行中。 – JNevill

回答

2

我要添加到特多的答案,你可能不需要一個臨時表在所有。您可以直接在查詢中包括這些:

select . . . 
from (VALUES ('McLovin'), ('Deckard'), ('Mufasa'), ('DeLarge')) v(names) 

或者使用CTE:

with names(name) as (
     select * 
     from (VALUES ('McLovin'), ('Deckard'), ('Mufasa'), ('DeLarge')) 
    ) 
select . . . 
0

這裏是最快的飛行方式:

SELECT CONVERT(VARCHAR(20), 'McLovin') NAMES 
INTO #temp 
UNION 
SELECT 'Deckard' 
UNION 
SELECT 'Mufasa' 
UNION 
SELECT 'DeLarge' 

無需編寫創建語句太。

相關問題