Oracle中merge into的使用(代替Insert/Update)

merge into数据模板

MERGE INTO table_name alias1 
USING (table|view|sub_query) alias2
ON (join condition) 
WHEN MATCHED THEN 
    UPDATE table_name 
    SET col1 = col_val1, 
        col2     = col2_val 
WHEN NOT MATCHED THEN 
    INSERT (column_list) VALUES (column_values); 

merge into实战

假设有by_goods和by_new_goods,要用by_new_goods来更新by_goods。

MERGE INTO by_goods g   --主表()
 USING by_new_goods ng    --副表(用来更新的)
    ON (g.goods_id = ng.goods_id )   --主副表关联条件
    WHEN MATCHED THEN  --匹配则进行更新
        UPDATE  
         SET g.goods_name = ng.goods_name 
         WHERE g.type= 'online'  
    WHEN NOT MATCHED THEN  --不匹配则进行插入
     INSERT  (goods_id,goods_name,type)   
     VALUES (ng.goods_id,ng.goods_name,ng.type)    

猜你喜欢

转载自blog.csdn.net/moshowgame/article/details/80512498
今日推荐