微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PL / SQL更新加入?

我知道PL / sql中没有Update-Join语句.我曾经写过T-sql.

我有两张桌子.

Alex_Table1
---------------------------
PK         VAL
---------------------------
1          Value1
2          Value2
3          Value3


Alex_Table2
---------------------------
PK         VAL
---------------------------
1          Value1_2
3          Value3_2

我想将来自Alex_Table2的VAL更新为通过PK列加入的Alex_Table1.

在T-sql中,这很简单

update t1 set t1.VAL = t2.VAL
from
    Alex_Table1 t1
    inner join Alex_Table2 t2 on t1.PK = t2.PK;

结果就是我的预期

Alex_Table1
---------------------------
PK         VAL
---------------------------
1          Value1_2
2          Value2
3          Value3_2

我的问题是如何在PL / sql中做?谢谢!

更新

谢谢Cyber​​nate和ypercube给了我两个有用的解决方案.他们都工作.但是,我想告诉您这两个陈述之间的表现.

我的实际表包含80,000条记录,只有3,000条需要更新.

MERGE语句需要0.533秒.

UPDATE EXISTS语句需要3分钟(我没有测量实际时间.3分钟后我终止了我的过程.)

解决方法

使用MERGE语句:
MERGE INTO Alex_Table1 t1
USING Alex_Table2 t2
ON (t1.PK = t2.PK)
WHEN MATCHED THEN 
UPDATE SET t1.VAL = t2.VAL

原文地址:https://www.jb51.cc/mssql/77830.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐