【发布时间】:2018-11-29 22:21:38
【问题描述】:
我一直在尝试为以下情况找到正确的语法(如果可能的话?):
MERGE INTO TAB_A tgt
USING TAB_B src ON (src.F1 = tgt.F1 AND src.F2 = tgt.F2
WHEN MATCHED THEN DELETE
ELSE INSERT (tgt.*) VALUES (src.*)
背景:临时表包含对目标表的修复,因为它包含两种类型的行: 要删除的不正确的行(它们与目标表中的行匹配),以及应该插入的“更正”行(它替换所有“删除”行)。
本质上是:删除任何匹配的内容; 插入任何不匹配的内容。
我得到的当前错误是:
“语法错误:预期在 'DELETE' 关键字和 'ELSE' 关键字之间存在某些内容”
任何帮助表示赞赏,谢谢!
【问题讨论】:
-
阅读手册。
WHEN MATCHED THEN DELETE WHEN NOT MATCHED THEN INSERT VALUES (scr.*) -
Teradata 不支持在 MERGE 语句中同时删除和插入
-
@MatBailie 是吗?因为你的陈述不起作用;)