Merge into函数为Oracle 9i添加的语法,用来合并update和insert语句。所以也经常用于update语句的查询优化:
一、语法格式:
merge into A
using B
on (A.a = B.a) --注意on后面带括号,且不能更新join的字段
when matched then
update set A.b = B.b
when not matched then
insert A (A.a,A.b) values (B.a,B.b) --也可以做delete语句
二、性能方面:Merge into优于update,Merge into只扫描一次全表,Update子句扫描两次;
三、使用需要注意的地方:
①update通常与exists搭配使用,更新指定范围的数据,而不是所有数据;
②改写update语句时,有多个表的情况,分析各个表的之间的关系,写到on后面做关联;
③不等式的,条件子句含不等式时,通常需要将子句做转化到B表中,外层再做关联。