oracle怎么用一个表的多个字段数据更新另一个表相应的字段中

如题所述

需要更新的表设为表1,数据表为表2,不知道你是要把表2的数据全部更新到表1中还是只更新表1中的部分字段。
可以用merge语句。
merge into 表1 a
using 表2 b
on (表1和表2的关系,例表1id =表2id)
where matched then update
set a.要修改的字段1 = b.要修改的字段1,a.要修改的字段2 = b.要修改的字段2,等等
--这里是将表表一的数据和表2做对比,更新条件是两表的id相同,当满足条件时,执行修改语句,将表1的数据字段改写为表2的
where not matched then insert
values(表2字段1,表2字段2,等等);
--这里是如果不满足条件,执行增加语句,将表2的数据插入到表1中
这里要注意,这两个表中字段名可以不同,但两表的数据类型要相同。
你可以先用别的表试下
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-18
updatet table1
set (name,sex,age)=(select name,sex,age from table2 t2 where t2. id=table1.id)
where exists(select 1 from table2 t3 where table3.id= table1.id)
相似回答