我有一个名为workerTab的表:

| Id | Name | Age | Cityid | 
| ---| ---- | --- |  ---   | 
| 1| John   | 22  | 5      |
| 2| Adam   | 34  | 5      |
| 3| Eve    | 19  | 5      |

我希望在列中有:Build,插入将重建/填充我的表的查询.

SELECT *
    ,CONCAT (
        'INSERT INTO workerTab(id,name,Age,Cityid)
VALUES(1, ''John'', 22, 5),'
        ,'(2, ''Adam'', 34, 5), '
        ,'(3, ''Eve'', 19, 5)'
        ) as Build
from workerTab
where cityid = 5

这就是我得到的:

Id Name Age Cityid Build
1 John 22 5 INSERT INTO workerTab(id,name,Age,Cityid) VALUES(1, 'John', 22, 5),(2, 'Adam', 34, 5), (3, 'Eve', 19, 5)
2 Adam 34 5 INSERT INTO workerTab(id,name,Age,Cityid) VALUES(1, 'John', 22, 5),(2, 'Adam', 34, 5), (3, 'Eve', 19, 5)
3 Eve 19 5 INSERT INTO workerTab(id,name,Age,Cityid) VALUES(1, 'John', 22, 5),(2, 'Adam', 34, 5), (3, 'Eve', 19, 5)

我想为每一行使用列内构建插入命令.例如:

Id Name Age Cityid Build
1 John 22 5 INSERT INTO workerTab(id,name,Age,Cityid) VALUES(1, 'John', 22, 5)
2 Adam 34 5 INSERT INTO workerTab(id,name,Age,Cityid) VALUES(2, 'Adam', 34, 5)
3 Eve 19 5 INSERT INTO workerTab(id,name,Age,Cityid) VALUES(3, 'Eve', 19, 5)

我只是被卡住了,无法完成.

推荐答案

您应该仅使用该行中的值为每行构建插入.

SELECT Id, Name, Age, Cityid,
       'INSERT INTO workerTab (Id, Name, Age, Cityid) VALUES (' +
       CAST(Id AS NVARCHAR(MAX)) + ', ' + QUOTENAME(Name, '''') + ', ' +
       CAST(Age AS NVARCHAR(MAX)) + ', ' + CAST(Cityid AS NVARCHAR(MAX)) + ')' AS Build
FROM workerTab
WHERE cityid = 5;

Sql相关问答推荐

SQL查询以条件空值跟踪生产操作结果进展

使用交叉应用透视表在SQL中转换分段时间段&

Select 最大值,但当并列时,从其他列 Select 最大值

使用SQL旋转表的列(Snowflake)

如何在不更改S代码的情况下,判断存储过程调用了多少次clr函数?

如何利用单列历史SQLsnowflake获得合并结果

如何在PostgreSQL中的一列中添加两个文本?

有没有办法在Postgres中存储带有时区的时间戳,而不将其转换为UTC

用户购买平台及金额统计

对于多字节字符,SQL Server中的DATALENGTH返回1字节

WooCommerce产品的SQL查询:获取sku和产品标签

通过UPDATE SELECT更新表时出现问题

SQL Server 查询 WHERE LIKE

复制行并根据 Oracle SQL 中其他表的值更改值

创建具有多个子查询的 SQL 视图

snowflake中的动态文件名生成

SQL 多个不满足的条件失败

如何创建一个递归计数器来查找一个元素有多少父级和子级?

所有列分组的简写?

SQL 中的问题与包含最大日期的记录连接