在T-SQL中使用三列的语句时的高级情况
希望有人可以提供以下帮助:)
我在SQL中有两个表。
我要执行以下操作:
所以我知道如何编写一个when语句的简单案例。但是,我认为“何时出现”仅适用于一列。我已经开始写出代码,但是需要帮助才能正确处理。
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
非常感谢您能提供的任何帮助,谢谢。
您的sql似乎最正确,除了else 1.C
。
由于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 table1 t1
CROSS JOIN table2 t2