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

iLe*_*ing 17 t-sql sql-server-2008

选择行,修改几列并将其插入同一个表的最简单方法是什么?我正在尝试基于另一个插入新行.

HLG*_*GEM 38

INSERT INTO table2 (column1, column2, column3)
SELECT column1, 'no', column3 FROM table2 WHERE column2 = 'yes'
Run Code Online (Sandbox Code Playgroud)

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

您可以使用的其他模式:

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

INSERT INTO table2 (column1, column2)
SELECT column1 + 'no', column2 FROM table2 WHERE column2 = 'yes'
Run Code Online (Sandbox Code Playgroud)

将列和一些文本组合在一起,其中列是字符串,另一个不是.

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

  • 在任何情况下都不应该在插入中使用通配符 (2认同)
  • @ Shashank.gupta40我知道这是旧的,但作为参考,只要column2是'字符串'类型(varchar,nvarchar等),你可以通过将列名称视为变量并附加新字符串来附加值,例如`column2 +'test'`. (2认同)

Jir*_*ika 7

INSERT INTO table(column1,column2) SELECT column1, const2 FROM table ...
Run Code Online (Sandbox Code Playgroud)

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