merge实现跨表批量更新

背景

有个业务需要跨表批量更新。需要将B表中的批复金额更新到A表中,之前都做外关联查询。发现merge能更简单更清晰的实现。

语法

MERGE [hint] INTO [schema ] table [t_alias]
USING [schema ]{ table | view | subquery } [t_alias]
ON ( condition )
WHEN MATCHED THEN merge_update_clause
WHEN NOT MATCHED THEN merge_insert_clause;

语句展示

merge into zjgrbbmx a
using (select b.zjbmbb_grbbmxid,
              b.zjbmbb_finalamount,
              b.zjbmbb_finalpjamount
         from zjbmbb b
        where b.zjbmbb_djid = 'f1661080-d614-4747-b2f5-c0bd8e2d09e1') t
on (t.zjbmbb_grbbmxid = a.zjbmbb_guid)
when matched then
  update
     set a.zjbmbb_finalamount   = t.zjbmbb_finalamount,
         a.zjbmbb_finalpjamount = t.zjbmbb_finalpjamount;

后记

整体是这个用法,接触尚浅,如有错误,欢迎指出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值