我在表1中有一列具有许多null的列,但是现在又有一个值。如果有一个值,我想转到表2并从那里获取相应的值。这应该创建一个名为user_original
的额外列:
CASE
WHEN table1.user_changed IS NOT NULL
THEN table2.user_original
ELSE -- do nothing
END as user_original
我基本上想替换
没什么
这是正确的吗?如何才能做到这一点?有更好的方法吗?
答案 0 :(得分:0)
您是不是需要
CASE
WHEN table1.user_changed IS NOT NULL
THEN table2.user_original
END as user_original
答案 1 :(得分:0)
您要关联子查询吗?
(CASE WHEN table1.user_changed IS NOT NULL
THEN (SELECT table2.user_original FROM table2 WHERE table2.? = table1.?)
END) as user_original
?
用于标识“相应”值的列。
在这种情况下,您可以将其简化为:
(SELECT table2.user_original FROM table2 WHERE table2.? = table1.?) as user_original
我的猜测是,如果原始值为NULL
,将没有匹配的值。