SQL(SQL Server)中是否有一种简单的方法来获取原始(只读)数据表并对其进行“更正”,其中更正将来自单独的表,并且输出已更正的数据集会显示在单独的视图中?
例如,假设这是原始数据表(其中“ Pineapples”是错误):
这是更正表(在这种情况下,只是一个更正):
所需的视图将导致提供以下更正的数据集:
关于如何编写查询或过程以获取这种更正数据的任何指针?我觉得它很明显(就像通过微调进行连接一样),但是真的很感谢任何指针。想了一段时间,还没有破解。
答案 0 :(得分:2)
您可以将coalesce
与outer join
一起使用:
select o.pk_id, o.col1, coalesce(c.col2, o.col2) newcol2
from original o
left join corrected c on o.pk_id = c.fk_id
coalesce
返回找到的第一个非null值,并且outer join
说从original
表中获取所有内容,并包括corrected
表中的所有匹配记录。因此,如果存在匹配项,则c.col2
不会是null
并将被返回。否则,c.col2
将是null
,并且将返回o.col2
。