我正在尝试使用现有表中的值创建临时表。我希望临时表有一个额外的列(电话),永久表中不存在。此列中的所有值都应为NULL。不知道怎么做,但这是我现有的查询:
SELECT DISTINCT UserName, FirstName, LastName INTO ##TempTable
FROM (
SELECT DISTINCT Username, FirstName, LastName
FROM PermanentTable
) data
答案 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