选择,修改并插入到同一个表中

时间:2012-03-26 21:02:30

标签: sql-server-2008 tsql

选择行的最简单方法是什么,修改几列并将其插入到同一个表中? 我试图根据另一行插入新行。

3 个答案:

答案 0 :(得分:38)

INSERT INTO table2 (column1, column2, column3)
SELECT column1, 'no', column3 FROM table2 WHERE column2 = 'yes'

希望这对你如何做到这一点有点清楚。如您所见,我从table2中抓取了两列,而对于另一列,我使用了文本值而不是column2的值。

您可以使用的其他模式:

合并列和其他一些文本(假设列已经是字符串数据类型。

INSERT INTO table2 (column1, column2)
SELECT column1 + 'no', column2 FROM table2 WHERE column2 = 'yes'

组合一个列和一些文本,一个例子是列是一个字符串而另一个例子不是。

INSERT INTO table2 (column1, column2)
SELECT column1 + 'no', 'A' + cast(column2 as Varchar (10)) FROM table2 WHERE column2 = 'yes'

答案 1 :(得分:7)

INSERT INTO table(column1,column2) SELECT column1, const2 FROM table ...

选择列表可能会混合复制的列(按名称)和更改的列(按所需的值)。

答案 2 :(得分:2)

Say column is int

INSERT INTO table(column1,column2) SELECT column1 + 1, column2 -1 FROM table

您可以乘以列并执行字符串函数。