在oracle数据表中,如何使用update根据表1的数据更新表2?
1个回答
关注
展开全部
准备阶段1.建表语句:create table table1( idd varchar2(10) , val varchar2(20) ); create table table2( idd varchar2(10), val varchar2(20) );2.插入数据:insert into table1 values ('01','1111'); insert into table1 values ('02','222'); insert into table1 values ('02','2222'); insert into table1 values ('03','3333'); insert into table1 values ('04','4444'); insert into table1 values ('06','6666'); commit; insert into table2 values ('01','aaaa'); insert into table2 values ('02','bbbb'); insert into table2 values
咨询记录 · 回答于2022-11-10
在oracle数据表中,如何使用update根据表1的数据更新表2?
oracle数据表,如图。需要根据表1的name,更新表2的name。望不吝赐教。
准备阶段旅芦岩拆御1.建表语句:create table table1( idd varchar2(10) , val varchar2(20) ); create table table2( idd varchar2(10), val varchar2(20) );2.插入数据哗搏:insert into table1 values ('01','1111'); insert into table1 values ('02','222'); insert into table1 values ('02','2222'); insert into table1 values ('03','3333'); insert into table1 values ('04','4444'); insert into table1 values ('06','6666'); commit; insert into table2 values ('01','aaaa'); insert into table2 values ('02','bbbb'); insert into table2 values
要将 table2中idd - val 的值,赋值给table1对应的 idd - val;为了困老验证操作的汪隐升合理性,设置了如下几个需要额外考虑情况:注意两表特殊地方在于:table1中,有1条idd字段值为06的数携空据,table2中idd字段没有06,命名为e1;table1中,有2条idd字段值都为02,并且对应的val不同的数据,命名为e2,以下都能正常解决此情况;table2中,有2条idd字段值都为05,但对应的val值不同的数据,命名为e3,待添加
2. 加入限制带州厅条件迹备,对于 table1中蠢隐有值,但是table2中无值的idd字段,不做修改;update table1 set val = (select val from table2 where table1.idd = table2.idd) where exists (select 1 from table2 where table1.idd = table2.idd)