如何在合并语句中使用 insert with select from other table ?
How can I use insert with select from other table in a merge statement?
我有这个问题。
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;
如何在合并语句中使用来自其他 table 的 select 插入?
你不会。您已经定义了 S
,因此您可以在 VALUES
子句中引用这些列。您也不要将目标别名 table 放在目标列之前:
THEN INSERT (category_id, category_name, amount)
VALUES (s.category_id, s.category_name, s.amount)
This 可能对您使用另一个 table 的要求有所帮助。
您可以将联接用作源,然后也可以将其用于插入。
我有这个问题。
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;
如何在合并语句中使用来自其他 table 的 select 插入?
你不会。您已经定义了 S
,因此您可以在 VALUES
子句中引用这些列。您也不要将目标别名 table 放在目标列之前:
THEN INSERT (category_id, category_name, amount)
VALUES (s.category_id, s.category_name, s.amount)
This 可能对您使用另一个 table 的要求有所帮助。
您可以将联接用作源,然后也可以将其用于插入。