Oracle merge into 的用法

有时候我们想要批量修改数据的情况,可能是业务需要,也可能是垃圾数据修正

简单语法如下

merge into table_1 t1                                       //t1为执行批量操作的表

using (table|view|sub_query)  t2                    //t2 是t1条件判断的表(也可以是视图,结果集)

on (join contion)                               //括号内为 t1,t2 连接条件 ,类似JOIN语句的连接条件

when matched                              //如果适配执行语句

then

update set    change_1,change_2... where ...              |  insert (coulmns) values(values)        //可以执行更新和插入操作

when not matched                                //如何不适配执行        ,没有可以不写

then

update set    change_1,change_2... where ...              |  insert (coulmns) values(values)        //可以执行更新和插入操作

例句如下:

MERGE INTO

TAB1 T1            //需要操作的表

USING 

TAB2 T2          //条件参数判断使用的表,也可以说查询的结果集,视图等

ON (T1.CODE=T2.CODE)     //条件   ,类似JOIN语句中的ON 连接条件

WHEN MATCHED     //如果成立

THEN

UPDATE            //更新,也可以是INSERT

SET T1.X=T2.X  , T1.Y=T2.Y           //可以用逗号连接多个操作

WHERE T2.X IS NOT NULL AND T2.Y IS NOT NULL    //如果需要,可以添加WHERE子句判断,可以不加

WHEN NOT MATCHED                //如果不成立,则执行,   此条件如果不需要可以不写

UPDATE                                   //也可以执行INSERT

SET T1.X=1,T1.Y=2

注意,操作merge操作为批量操作,语句执行前请确认好条件再执行,防止产生垃圾数据

TAB2可以是表,视图和查询后的结果集

猜你喜欢

转载自blog.csdn.net/aaronmer/article/details/84927818