数据库视图以进行更正

时间:2018-12-11 23:18:59

标签: sql sql-server

SQL(SQL Server)中是否有一种简单的方法来获取原始(只读)数据表并对其进行“更正”,其中更正将来自单独的表,并且输出已更正的数据集会显示在单独的视图中?

例如,假设这是原始数据表(其中“ Pineapples”是错误):

enter image description here

这是更正表(在这种情况下,只是一个更正):

enter image description here

所需的视图将导致提供以下更正的数据集:

enter image description here

关于如何编写查询或过程以获取这种更正数据的任何指针?我觉得它很明显(就像通过微调进行连接一样),但是真的很感谢任何指针。想了一段时间,还没有破解。

1 个答案:

答案 0 :(得分:2)

您可以将coalesceouter 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