列更新并在同一个表内插入2行

问题描述:

我有一个名为table1的表,并且一个columnA中的值为X。因此,当此值为X时,我们需要插入2个新行并使用值ZY更新columnA列更新并在同一个表内插入2行

是否可能与insertUpdate声明?

我在考虑下面的查询来更新列,但如何插入两行。

select * from table1 where columnA = 'x' 
Update columnA ='Z' 
+0

什么似乎是一个问题?你知道如何插入1行吗? –

+0

是的,我知道如何插入1行,但表中有很多列。普通插入语句我们使用Insert into table1(column1,column2 .....)values(value1,value2 .....); – user2950701

+0

您可以控制插入过程中哪些字段获取值,其他字段将获得默认值。 –

您可以使用下面的语句表

INSERT INTO table1 
SELECT 'y' columnA, 
     columnB, 
     columnC, 
     ... 
    FROM table1 
WHERE columnA = 'x'; 

INSERT INTO table1 
SELECT 'z' columnA, 
     columnB, 
     columnC, 
     ... 
    FROM table1 
WHERE columnA = 'x'; 

不过,当然,你还需要提供在WHERE子句,以获得您想在同一个表中复制的具体数据标准,以插入但具有不同的columnA值。你真的需要指定每一列。

+0

我想用y和z值更新列添加2个新行。但是在这里你正在使用一个select语句。它不起作用 – user2950701

+0

您能否提供样品原始数据和结果数据? –