2015-10-16 43 views
1

我正在嘗試使用現有表中的值創建臨時表。我想臨時表有一個額外的列(電話),永久表中不存在。此列中的所有值都應爲NULL。不知道怎麼做,但這裏是我現有的查詢:將NULL值添加到臨時表

SELECT DISTINCT UserName, FirstName, LastName INTO ##TempTable 
FROM (
     SELECT DISTINCT Username, FirstName, LastName 
      FROM PermanentTable 
) data 
+0

你不需要做任何事情,該值將始終爲空,如果你不指定的值列 – Oscar

回答

7

你需要給列中的值,BU T優並不需要一個子查詢:

SELECT DISTINCT UserName, FirstName, LastName, NULL as phone 
INTO ##TempTable 
FROM PermanentTable; 

在SQL Server中,爲NULL默認類型是int。這是比較合理的存儲電話號碼作爲字符串,所以這也許是更好的:

SELECT DISTINCT UserName, FirstName, LastName, 
     CAST(NULL as VARCHAR(255)) as phone 
INTO ##TempTable 
FROM PermanentTable; 
+0

謝謝,這個作品完美! – PixelPaul

0

只想補充一點,你會插入到不是Temptable並在內部選擇列的名稱只是選擇NULL

像這樣

SELECT DISTINCT UserName, FirstName, LastName, Phone INTO ##TempTable 
FROM (
    SELECT DISTINCT Username, FirstName, LastName, NULL 
     FROM PermanentTable 
) data 
作爲
0

重寫查詢 -

CREATE TABLE ##TempTable(UserName datatype, FirstName datatype, LastName datatype,Phone datatype) 
INSERT INTO INTO ##TempTable (UserName, FirstName, LastName,Phone) 
SELECT DISTINCT UserName, FirstName, LastName,NULL 
FROM (
     SELECT DISTINCT Username, FirstName, LastName 
      FROM PermanentTable 
) data 
相關問題