Oracle 数据库 根据B表的数据更新A表

Oracle 数据库 根据B表的数据更新A表

本来打算用循环写了,结果发现这样可以,记录一下,以防下次再用忘记方法

update A
 
   set A.字段2 = (select B.id from B where A.字段2 = B.字段2)
 
 where exists (select 1 from B where B.字段2 = A.字段2);
 
--  如果B表字段2有重复,那么会报错:单条语句返回多行。此时用下面语句:
update A
 
   set A.字段2 = (select B.id from B where A.字段2 = B.字段2 and rownum=1)
 
 where exists (select 1 from B where B.字段2 = A.字段2); 

你可能感兴趣的:(运维,oracle,数据库,sql)