在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)
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消