我有一个表 ( tblA) 和一个查询 ( queryB)。的输出queryB与 的架构匹配tblA。我想更新tblA,使其内容等于queryB
一个明显的解决方案可能是:
TRUNCATE TABLE tblA
INSERT INTO tblA
(queryB)
但是,我想尽量减少我所做的删除和插入的次数。
将有三种情况,其结果来自queryB:
- 在
queryB,不在tblA:插入 - 在
queryB, 在tblA: 什么都不做 - 在
tblA,不在queryB:删除
到目前为止,我发现 MS SQL 的 MERGE 支持一个[NOT] PRESENT IN TARGET/SOURCE非常适合这个的 - 但还没有找到一个 Oracle 等价物。
有没有一种优雅的方式来实现这一目标?