两个表格之间字段更新的方法

第一种:oracle的方法

merge into emp_bak a
using  emp b
on (a.ename like CONCAT('%',concat(b.ename,'%')))  ----模糊匹配,如果是等值,把like换成= ,CONCAT('%',concat(b.ename,'%')))换成b.ename字段
when matched then
update set a.sal=b.sal  
merge into emp_bak a
using  emp b
on (a.ename= b.ename)
when matched then
update set a.sal=b.sal  
merge into 想要更新的表
using  提供数据的表
on (想要更新的表.关联字段=提供数据的表.关联字段)
when matched then
update set 想要更新的表.更新字段=提供数据的表.字段

第二种方法:
update emp_bak a set a.sal =(select b.sal  from emp b where a.ename like CONCAT('%',concat(b.ename,'%')))
正则表达式的写法:
update emp_bak a set a.sal =(select b.sal  from emp b where regexp_like(a.ename,b.ename))

精准匹配(第二行的where语句是查询是不是存在才更新)

update emp_bak a set a.sal =(select b.sal  from emp b where a.ename = b.ename)
where exists (select 1 from emp b where a.ename= b.ename)
update 想要更新的表 set 想要更新 的表.更新字段 =(select 提供数据的表.字段  from 提供数据的表 where 想要更新的表.关联字段=提供数据的表.关联字段)

 

 
posted @ 2022-05-17 19:28  潜摩羯  阅读(475)  评论(0编辑  收藏  举报