2015-10-16 45 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 
相关问题