如果在批量更新时需要使用两个条件,可以在 ON
子句或 WHERE
子句中添加第二个条件。以下是两种方法的示例,展示了如何处理多个条件。
使用 MERGE
语句
MERGE INTO target_table tgt
USING (
SELECT id, type, new_value
FROM source_table
) src
ON (tgt.id = src.id AND tgt.type = src.type)
WHEN MATCHED THEN
UPDATE SET tgt.column_to_update = src.new_value;
在这个例子中,id
和 type
是两个匹配条件,new_value
是需要更新的值。
使用子查询和 UPDATE
语句
UPDATE target_table tgt
SET tgt.column_to_update = (
SELECT src.new_value
FROM source_table src
WHERE src.id = tgt.id AND src.type = tgt.type
)
WHERE EXISTS (
SELECT 1
FROM source_table src
WHERE src.id = tgt.id AND src.type = tgt.type
);
在这个例子中,子查询从 source_table
中获取 new_value
,并根据两个匹配条件 id
和 type
更新 target_table
中的 column_to_update
列。
这两种方法都可以处理多个条件,具体选择哪种方法取决于你的实际需求和数据结构。