oracle sql更新表中多列值,值是从其它表中查询(select)得出

案例描述:

将表vehicle中列pay_money_remain的值分为2/3,1/3再更新到表vehicle的pay_money_remain,disinfectionbal_remain

表:vehicle 

列:pay_money_remain,disinfectionbal_remain

update vehicle ve
   set (ve.pay_money_remain, ve.disinfectionbal_remain) = (select trunc(v.pay_money_remain * 2 / 3),
                                                                  (v.pay_money_remain -
                                                                  trunc(v.pay_money_remain * 2 / 3))
                                                             from vehicle v
                                                            where ve.vehicle_iq_code =
                                                                  v.vehicle_iq_code);
commit;

总结:

update A a set(a.a1,a.a2,a.a3) = (select b.b1,b.b2,b.b3 from B b where 条件) where 条件;

commit;

猜你喜欢

转载自blog.csdn.net/damoluomu/article/details/17578905