Oracle两表关联批量更新其中一张表的数据

        今天在工作中有一个需求,两表关联批量更新其中一张表的数据,结合网上的知识和自己的摸索,总结出两种方法,方法非常简单,分享一下


第一种方法(本人使用):

UPDATE 表2
  SET 表2.X =
     (SELECT B
       FROM 表1
      WHERE 表1.Y = 表2.Y)
 WHERE EXISTS
     (SELECT 1
       FROM 表1
      WHERE 表1.Y = 表2.Y);

要注意最后的外层where条件很重要,作用是锁其批量更新数据的范围;



第二种方法:

MERGE INTO 表2
   USING 表1
    ON (表2.Y = 表1.Y)                    -- 条件是 Y 相同
WHEN MATCHED
THEN
  UPDATE SET 表2.X = 表1.Z                   -- 匹配的时候,更新

第二种方法没有第一种方法好理解,建议使用第一种

本文标题:Oracle两表关联批量更新其中一张表的数据
本文链接:https://www.7colorblog.com/?id=21
作者授权:除特别说明外,本文由 七彩blog 原创编译并授权 七彩Blog 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
天气预报QQ联系咨询电话微信联系tg群组 QQ群 联系邮箱 杂货铺
QQ咨询(2413265289)QQ咨询
联系电话(只收短信)+1(315)996-1004
联系电话(只收短信)+1(213)921-1642