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可以是表,視圖和查詢後的結果集

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章