SQL(Server):使用查询结果的结构复制现有表中的查询结果

时间:2017-05-30 08:09:42

标签: sql sql-server sql-server-2008

我创建了一个SQL查询,用于合并表中的重复项:

SELECT Min([XNbr]) AS [XNbr], [ZNbr], [Hamster], [Cat], [Cow], [Dog],
[Squirrel], [Bird], [Mouse], [Flower], [Tree], Max([TimeStamp]) AS
[TimeStamp]
FROM dbo.Sunshine
GROUP BY [ZNbr], [Hamster], [Cat], [Cow], [Dog], [Squirrel], [Bird],
[Mouse], [Flower], [Tree]
ORDER BY [XNbr]

我现在想要扩展此查询以将结果传输到我之前创建的目标表中,该表具有上述查询的确切结构(相同的字段和类型)。怎么办?

3 个答案:

答案 0 :(得分:0)

将结果暂时存储在表格中。

在sql server中使用'generate scrips'选项并选择创建的表。

Generate script for both schema and data

http://www.c-sharpcorner.com/UploadFile/26b237/generate-database-script-in-sql-server-2012/

生成脚本后,只需更改表名。

如果数据库中不存在目标表,那么

 SELECT Min([XNbr]) AS [XNbr], [ZNbr], [Hamster], [Cat], [Cow], [Dog], [Squirrel], [Bird], [Mouse], [Flower], [Tree], Max([TimeStamp]) AS [TimeStamp]                                     
 into TargetTable 
 FROM dbo.Sunshine 
 GROUP BY [ZNbr], [Hamster], [Cat], [Cow], [Dog], [Squirrel], [Bird], [Mouse], [Flower], [Tree] 
 ORDER BY [XNbr]

生成的表将具有与结果相同的模式。

答案 1 :(得分:0)

您可以使用Insert into Select Syntax。请访问此链接以参考更多内容:https://www.w3schools.com/sql/sql_insert_into_select.asp

答案 2 :(得分:0)

您只需要INSERT INTO

INSERT INTO TargetTable (Columns)
SELECT Min([XNbr]) AS [XNbr], [ZNbr], [Hamster], [Cat], [Cow], [Dog],
[Squirrel], [Bird], [Mouse], [Flower], [Tree], Max([TimeStamp]) AS
[TimeStamp]
FROM dbo.Sunshine
GROUP BY [ZNbr], [Hamster], [Cat], [Cow], [Dog], [Squirrel], [Bird],
[Mouse], [Flower], [Tree]
ORDER BY [XNbr]