sql - 对多行使用 SELECT INTO

标签 sql insert

这是重新 我想通过利用 SELECT INTO 使用查询结果创建一个表。 语法

SELECT *
INTO Persons_Backup
FROM Persons

与我想要实现的目标非常接近,不同之处在于我希望 FROM 使用查询作为源。

我的情况比这些简单的例子要复杂一些。

我需要创建一个表并同时插入多行。如果我可以(我不能)使用以前创建的表,则语句将如下所示:

INSERT INTO Person_Backup12 (Col1, Col2, Col3)
Select 1, 'a','2001-01-01 12:00'
UNION ALL
Select 83, 'z','2011-09-30 13:27'
UNION ALL
Select 777, 'k','1997-04-25 09:27'

我可以在创建表的同时执行此操作吗?

最佳答案

您可以将查询放入公共(public)表表达式或派生表中,然后从中SELECT ... INTO

;WITH cte (Col1, Col2, Col3) AS
(
Select 1, 'a','2001-01-01 12:00'
UNION ALL
Select 83, 'z','2011-09-30 13:27'
UNION ALL
Select 777, 'k','1997-04-25 09:27'
)
SELECT *
INTO NewTable
FROM cte

在这种情况下,您可能需要一些显式转换来获取所需的列数据类型(datetime 而不是 char 等)

关于sql - 对多行使用 SELECT INTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5566226/

相关文章:

sql - Azure SQL "select"查询未显示所有行

mysql - 使用子查询 MySQL 插入 INTO

c++ - 插入 map 库无效

php - 如何在mysql中将下拉列表的选定值存储为id

PHP 脚本为每个 SQL 行输出单独的 PDF - FPDF

sql - 如何将 Try/Catch 添加到 SQL 存储过程

sql - Oracle regexp_substr - 从不同格式的字符串中提取子字符串

php - 如何仅更新和设置当前时间的所有行

php - codeigniter 将许多图像名称插入数据库

c++ - AVL树插入方法导致段错误