我很难回答一个问题,我不知道该怎么做。
我想创建一个基于表原始数据表的视图myu view,每当指定id时,每个值都被表替换数据表中的非空值替换。
原始数据表和替换数据表的结构相同,但值不同。
我试图在我的查询中使用join,但我不确定这是否合适。
SELECT * FROM original_data_table AS o
LEFT JOIN replacement_data_table AS r
ON o.id = r.id
原始数据表
id name value
1 David 10
2 John 20
3 Sarah 30
4 Amy 40
替换数据表
id name value
1 NULL 50
2 Rick NULL
4 Emma 60
我的观点
id name value
1 David 50
2 Rick 20
3 Sarah 30
4 Emma 60
3条答案
按热度按时间x9ybnkn61#
你需要
COALESCE()
要从正确的表中获取正确的值,请执行以下操作:xienkqul2#
试试这个:
kuuvgm7e3#
试试看用吧
case when
```SELECT
o.
id
,case when o.name
<> r.name
and r.name
is not null thenr.
name
else o.
name
end as name
,case when o.
value
<> r.value
and r.value
is not null thenr.
value
else o.
value
end as value
FROM original_data_table AS o
LEFT JOIN replacement_data_table AS r
ON o.id = r.id
order by o.id