sql - 用于进行更正的数据库视图
问题描述
SQL(SQL Server)中是否有一种简单的方法来获取原始(只读)数据表并对其施加“更正”,其中更正将来自单独的表,并且更正数据集的输出将是在单独的视图中显示?
例如,假设这是原始数据表(其中“Pineapples”是错误的):
这是更正表(在这种情况下,只有一个更正):
所需的视图将导致提供以下更正的数据集:
有关如何编写查询或过程以获取此类更正数据的任何指针?我有一种很明显的感觉(就像一个带有调整的连接),但非常感谢任何指针。想了很久,还没破解。
解决方案
您可以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
返回它找到的第一个非空值,并且outer join
说从original
表中获取所有内容并包括表中的任何匹配记录corrected
。因此,当有匹配时,c.col2
将不会null
并且将被返回。否则,将c.col2
被退回。null
o.col2
推荐阅读
- android - 如何从android中的媒体记录器获取音频流
- rest - Google Apps 脚本无法识别 HTTP POST 请求中的“Host”标头?
- python - 如何在主循环继续运行时制作一个单独的“类似计时器”的函数来设置变量?
- django - 在 cpanel(共享主机)上部署 Django 应用程序时出错
- javascript - 如何在 Textarea 元素中显示数组
- c++ - 程序使用 pkg-config --cflgas opencv 和 pkg-config --ldflag 编译正常,但不可执行(ubuntu 16.04)
- objective-c - 在函数范围之外保持objectiveC对象有效
- r - 我如何从 github 为 r 运行可执行文件
- javascript - 如何将字符串转换为 React 组件
- button - Google电子表格:单击按钮时“需要授权”