oracle多个列值,oracle 同时更新(update)多个字段多个值

--创建表A,B:

create table A (a1 varchar2(33),a2 varchar2(33),a3 varchar2(33));

create table B (b1 varchar2(33),b2 varchar2(33),b3 varchar2(33));

--插入数据

insert into A values('1','aa','100');

insert into A values('2','bb','100');

insert into A values('3','cc','');

insert into A values('4','dd','200');

insert into B values('1','XX','10000');

insert into B values('2','YY','10000');

insert into B values('4','ZZ','20000');

insert into B values('5','KK','');

commit;

--更新前的表A,B:

0818b9ca8b590ca3270a3433284dd417.png                   

0818b9ca8b590ca3270a3433284dd417.png

--对表A的a2,a3进行更新(带条件);

update  A

set (A.a2,A.a3) =(select B.b2,b.b3

from  B

where B.b1= A.a1 and A.a3=100

)

where exists

(select 'X' from B where B.b1=A.a1 and A.a3=100)  ;

commit;

--或者:

update  A

set (A.a2,A.a3 )=

(select B.b2,b.b3

from  B

where B.b1= A.a1 and A.a3=100

)

where (A.a1) in (select

B.b1 from  B

where B.b1 = A.a1

and A.a3 =100

);

commit;

--更新后的表A:

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值