将具有NULL值的列添加到临时表

时间:2015-10-16 11:15:49

标签: sql sql-server

我正在尝试使用现有表中的值创建临时表。我希望临时表有一个额外的列(电话),永久表中不存在。此列中的所有值都应为NULL。不知道怎么做,但这是我现有的查询:

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

3 个答案:

答案 0 :(得分:8)

您需要为列添加值,但不需要子查询:

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;

答案 1 :(得分:0)

只需添加要插入TempTable的列名称,在内部选择中只选择NULL

类似这样的事情

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

答案 2 :(得分: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