列更新并在同一个表内插入2行
问题描述:
我有一个名为table1
的表,并且一个columnA
中的值为X
。因此,当此值为X
时,我们需要插入2个新行并使用值Z
和Y
更新columnA
。列更新并在同一个表内插入2行
是否可能与insert
和Update
声明?
我在考虑下面的查询来更新列,但如何插入两行。
select * from table1 where columnA = 'x'
Update columnA ='Z'
答
您可以使用下面的语句表
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
您能否提供样品原始数据和结果数据? –
什么似乎是一个问题?你知道如何插入1行吗? –
是的,我知道如何插入1行,但表中有很多列。普通插入语句我们使用Insert into table1(column1,column2 .....)values(value1,value2 .....); – user2950701
您可以控制插入过程中哪些字段获取值,其他字段将获得默认值。 –