MERGE

SQL> select *from orders_master;

ORDER_ID ORDER_TOTAL
---------- -----------
1 1000
2 2000
3 3000
4

SQL> select *from monthly_orders;

ORDER_ID ORDER_TOTAL
---------- -----------
2 2500
3

SQL> MERGE INTO orders_master o //目標
2 USING monthly_orders m //源
3 ON (o.order_id = m.order_id) //對比的值
4 WHEN MATCHED THEN //如匹配
5 UPDATE SET o.order_total = m.order_total // 將源的值 更新 到目標
6 DELETE WHERE (m.order_total IS NULL) //當 源的order_total IS NULL 則刪除 目標中的這樣一行。
7 WHEN NOT MATCHED THEN //如不匹配
8 INSERT VALUES (m.order_id, m.order_total); //則 將源的值 插入 到目標。

2 行已合併。

如果如下;
monthly_orders的2,3
SQL> select *from orders_master;

ORDER_ID ORDER_TOTAL
---------- -----------
1 1000
2 2500
4

SQL> select *from monthly_orders;

ORDER_ID ORDER_TOTAL
---------- -----------
2 2500
3

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