Oracle中 一个表的数据更新另一个表中的数据报错,merge into

Oracle中 如何用一个表的数据更新另一个表中的数据准备阶段这里有两张表,关联查询下结果:我这里要用表二 gy_jibing t 的 t.jibingid 值插入到表一siim.yb_jbdmzdbf t1 的t1.yyxh 中。select t1.*, t.jibingid from siim.yb_jbdmzdbf t1inner join gy_jibing t on t1.gldm=t.icd10where exists (select t.jibingid from gy_
摘要由CSDN通过智能技术生成

Oracle中 如何用一个表的数据更新另一个表中的数据
准备阶段
这里有两张表,关联查询下结果:
我这里要用
表二 gy_jibing t 的 t.jibingid 值
插入到
表一siim.yb_jbdmzdbf t1 的t1.yyxh 中。

select t1.*, t.jibingid from siim.yb_jbdmzdbf t1
inner join gy_jibing t on t1.gldm=t.icd10
where exists (select t.jibingid from gy_jibing t where t1.gldm=t.icd10)

3.两张表如下图:
表一table1
表二 table2

sql查询:

  1. 最容易想到的办法:通过子查询 ,直接 update ,如下:
    update table1 set table1.val = (select val from table2 where table1.idd = table2.idd);
    image.png

问题:我们遇到了e1情况,即table1中06对应的值被改变了–>val变成了null(即图中的空白);
这并不是我们的本意,故做出如下改进。
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.i

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值