我有两个表,一个主表和一个正在进行的表。在操作记录时,任何插入/更新都将插入 WIP 表中,这允许进行验证检查等。我想创建一个视图,该视图组合了两个表,当 WIP 表数据存在时显示 WIP 表数据,而在没有 WIP 数据时显示主表数据。
我已经想出了一种方法来做到这一点,但它似乎不是最优雅的解决方案。我想知道是否有其他想法或更好的解决方案?
说明情况的示例:
select mt.id, wt.id wip_id, isnull(wt.name,mt.name) name,
isnull(wt.address, mt.address) address
from main_table mt full outer join
wip_table wt on mt.id = wt.orig_id;
因此,当它们存在时,它将从 WIP 表中提取结果,如果它们不存在,它将从主表中提取结果。这是一个简单的示例,但表可能有很多行。