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)