使用三列在T中语句时使用的高级情况
希望有人能在以下方面提供帮助:)
我在SQL中有两个表。
我想做以下几点:
<代码>H 117>查找表1,C列,查找表2中的值,列C<代码>H 218<代码>H 119/代码>如果在任何列中没有值,则转到“空”H 220F 221。
所以我知道如何在陈述时写一个简单的案例。但是,我认为“情况”只适用于一列。我已经开始写代码了,但需要帮助才能把它做好。
Select person_id,
case when 1.A is not null then 2.A
when 1.B is not null then 2.B
else 1.C
end as CODE
from table 1
left join table 2
Order by person_id会感谢你的帮助,谢谢。
发布于 2020-01-09 13:35:46
除了else 1.C之外,您的sql似乎基本上是正确的。
因为CASE WHEN将返回1值,这取决于第一个正的WHEN条件。
默认情况下,CASE返回NULL。
所以ELSE null并不是真正需要的。
表描述确实表明Table2只包含1行。
如果是的话,你可以交叉加入他们。
SELECT t1.person_id,
CASE
WHEN t1.A IS NOT NULL THEN t2.A
WHEN t1.B IS NOT NULL THEN t2.B
WHEN t1.C IS NOT NULL THEN t2.C
END AS [CODE]
FROM [Table 1] t1
CROSS JOIN (
SELECT TOP 1 A, B, C
FROM [Table 2]
ORDER BY A DESC, B DESC, C DESC
) t2https://stackoverflow.com/questions/59664908
复制相似问题