加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

PL / SQL更新加入?

发布时间:2020-12-12 06:47:50 所属栏目:MsSql教程 来源:网络整理
导读:我知道PL / SQL中没有Update-Join语句.我曾经写过T-SQL. 我有两张桌子. Alex_Table1---------------------------PK VAL---------------------------1 Value12 Value23 Value3Alex_Table2---------------------------PK VAL---------------------------1 Value
我知道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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读