如何在合并语句中使用insert和select from other表



我有这个查询。

MERGE sales.category t 
USING sales.category_staging s
ON (s.category_id = t.category_id)
WHEN MATCHED
THEN UPDATE SET 
t.category_name = s.category_name,
t.amount = s.amount
WHEN NOT MATCHED BY TARGET 
THEN INSERT t(category_id, category_name, amount)
VALUES select s.category_id, s.category_name, s.amount from s
WHEN NOT MATCHED BY SOURCE 
THEN DELETE;

如何在合并语句中使用insert和select from other表?

你不会的。您已经定义了S,因此可以在VALUES子句中引用这些列。您也不会将目标表的别名放在目标列之前:

THEN INSERT (category_id, category_name, amount)
VALUES (s.category_id, s.category_name, s.amount)

这可能有助于您使用其他表的需求。

您可以将联接用作源,然后也可以将其用于插入。

最新更新