我正在尝试使用现有表中的值创建临时表。我想临时表有一个额外的列(电话),永久表中不存在。此列中的所有值都应为NULL。不知道怎么做,但这里是我现有的查询:将NULL值添加到临时表
SELECT DISTINCT UserName, FirstName, LastName INTO ##TempTable
FROM (
SELECT DISTINCT Username, FirstName, LastName
FROM PermanentTable
) data
我正在尝试使用现有表中的值创建临时表。我想临时表有一个额外的列(电话),永久表中不存在。此列中的所有值都应为NULL。不知道怎么做,但这里是我现有的查询:将NULL值添加到临时表
SELECT DISTINCT UserName, FirstName, LastName INTO ##TempTable
FROM (
SELECT DISTINCT Username, FirstName, LastName
FROM PermanentTable
) data
你需要给列中的值,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;
谢谢,这个作品完美! – PixelPaul
只想补充一点,你会插入到不是Temptable并在内部选择列的名称只是选择NULL
像这样
SELECT DISTINCT UserName, FirstName, LastName, Phone INTO ##TempTable
FROM (
SELECT DISTINCT Username, FirstName, LastName, NULL
FROM PermanentTable
) data
作为
重写查询 -
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
你不需要做任何事情,该值将始终为空,如果你不指定的值列 – Oscar