MERGE介紹

何謂MERGE
  • 針對指定的條件可對資料做新增,修改,刪除,如果符合的條件就對資料做修改,刪除,如果不符合條件就對資料做新增
格式
MERGE INTO table_name [t_alias]
USING {table_reference | (subquery)} ON(condition)
WHEN MATCHED THEN
          UPDATE SET column={expr | default}
          [WHERE where_clause][DELETE WHERE where_clause]
WHEN NOT MATCHED THEN
          INSERT (column[,column...])
          VALUES({expr|default}[,{expr|default}...])
          [WHERE where_clause]
table_name:目標表格
t_alias:目標表格的物件別名
table_reference:參考表格
subquery:子查詢
condition:條件
column:欄位名稱
 expr:資料型別值
default:預設值
where_clause:指定條件
使用方式
  • SQL語法示範
如果emp表格的xid與employees表格的employee_id為相等,就修改emp表格的sal為100,如果為不相等就新增employees表格資料到emp
merge into emp e
using (select * from employees) e2 on(e.xid=e2.employee_id)
when matched then
update set e.sal=100
when not matched then
insert values(e2.employee_id,e2.salary);