【发布时间】:2011-07-26 00:44:28
【问题描述】:
我知道 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
我想将 VAL 从 Alex_Table2 更新为 Alex_Table1 通过 PK 列加入。
在 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 中做?谢谢!
更新
感谢 Cybernate 和 ypercube 给了我两个有用的解决方案。他们都工作。但是,我想让你知道这两个语句之间的性能。
我的实际表包含 80,000 条记录,只有 3,000 条需要更新。
MERGE 语句耗时 0.533 秒。
UPDATE EXISTS 语句耗时超过 3 分钟(我没有测量实际时间。我在 3 分钟后终止了我的进程。)
【问题讨论】: