根据字段1中的唯一值在SQL表中多次插入同一行

时间:2013-03-18 15:56:31

标签: sql

我目前有一个表,其中第1列是其余列的唯一标识符,我需要在表中为每个唯一标识符插入一个新值。示例如下:

Column 1   Column 2   Column 3 
10         Address    True 
10         City       False
10         State      True
20         Address    True
20         City       True
20         State      True

我需要根据第1列中的每个唯一标识符插入一个新行,如下所示:

Column 1   Column 2   Column 3
10         Address    True
10         City       False
10         State      True
*10         NEW        NEW*
20         Address    True
20         City       True
20         State      True
*20         NEW        NEW*

出于某种原因,快速查找和插入的SQL脚本只是在星期一早上逃脱了。任何帮助将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:1)

insert into table-name
(Column1, Column2, Column3)
select Column1, 'NEW', 'NEW*' from table-name group by Column1

您也可以在子选择中使用distinct,但我已经开始切换到group by,如果我想将查询更改为count或者其他内容,则可以更灵活。

答案 1 :(得分:1)

您可以尝试Marlin Pierce的建议:

INSERT INTO [table-name]
([Column 1], [Column 2], [Column 3])
SELECT [Column 1], 'NEW', 'NEW*' from [table-name] where [Column 2] = 'Address' group by [Column 1];

这会为每个现有行创建一个新行。

请参阅SqlFiddle了解可执行样本。