优化两个合并语句

时间:2017-07-31 22:51:54

标签: oracle plsql merge sql-update

我有两个合并语句,其中一个使用其他行的子集。有没有办法优化解决方案。 PFB两个合并声明。

声明1

merge into tableA using (select a,b,c from tableB where x='1')
on (tableA.a = tableB.a and tableA.b= tableB.b) 
when matched update set tableA.c = tableB.c;

声明2

merge into tableA using (select a,b,c from tableB where x='1' and b='2') 
on (tableA.a = tableB.a) 
when matched update set tableA.c= tableB.c;

提前致谢!

修改

我想我混淆了具有相同列名的人。第一个语句更新所有必需的行,除了tableB中没有匹配行的行。因此,在第二次合并时,我使用tableB中某个硬编码行的另一个值更新该行。

1 个答案:

答案 0 :(得分:0)

您只需使用第一行,因为第二行中的所有行都在第一行中。如果您现在运行第一个,则无需运行第二个