【发布时间】:2019-02-15 08:13:13
【问题描述】:
如果 MERGE 语句在目标表和源表上都有条件,有人能解释一下 WHERE 将如何工作吗?例如:
merge into target_table t
using source source_table s
on s.flield = t.field
when matched then update (...)
when not matched then insert (...)
where t.field != <value> and s.field != <value>
我不知道如何解决t.field,因为源字符串与when not matched 子句中没有一个目标表字符串匹配。
我做了一些测试,所以在我看来,行将永远不会被插入。
我想知道:是否会插入任何行?
【问题讨论】:
-
您的
ON子句在哪里?WHEN中的那个条件和其他条件通常是应用任何约束的地方。 -
@Damien_The_Unbeliever thx 添加了 ON 子句。