1. MERGE 与 CTE 联用,WITH src AS (...)、MERGE INTO ... USING src ON ...?
说明 MERGE 与 CTE 联用的语法?
- WITH src AS 定义源
- MERGE INTO ... USING src
- 源表与目标表匹配
MERGE 可与 CTE 联用,先定义源结果集,再 MERGE 到目标表。语法为 WITH src AS (...) MERGE INTO target USING src ON ... WHEN MATCHED ... WHEN NOT MATCHED ...。CTE 提供灵活的数据源。
源可以是 CTE 构造的集合,便于在 MERGE 前做转换/聚合。
WITH src AS (SELECT id, val FROM staging)
MERGE INTO target t USING src s ON t.id = s.id
WHEN MATCHED THEN UPDATE SET val = s.val
WHEN NOT MATCHED THEN INSERT (id, val) VALUES (s.id, s.val);