MERGE INTO語句用于將一個表的數據插入到另一個表中,同時可以根據條件進行更新操作。在處理復雜邏輯時,可以結合使用WHEN MATCHED、WHEN NOT MATCHED等子句來實現不同的條件判斷和操作。
以下是一個示例,假設有兩個表table1和table2,我們要將table1的數據插入到table2中,如果table2中已存在相同的數據,則更新表中的字段值:
MERGE INTO table2 t2
USING table1 t1
ON (t1.id = t2.id)
WHEN MATCHED THEN
UPDATE SET t2.name = t1.name, t2.age = t1.age
WHEN NOT MATCHED THEN
INSERT (id, name, age) VALUES (t1.id, t1.name, t1.age);
在上面的例子中,我們首先將table1和table2作為源表和目標表,使用ON子句指定兩個表的關聯條件。當源表和目標表中的id字段相同時,使用WHEN MATCHED子句更新目標表中的name和age字段值。如果沒有匹配的記錄,則使用WHEN NOT MATCHED子句將源表的數據插入到目標表中。
通過合理的結合使用WHEN MATCHED、WHEN NOT MATCHED等子句,可以實現更為復雜的邏輯處理,滿足不同場景下的需求。