gpt4 book ai didi

sql-server - 基于 3 个表 MSSQL 的 Case 语句

转载 作者:行者123 更新时间:2023-12-03 16:48:30 24 4
gpt4 key购买 nike

我需要根据 3 个表编写一个 case 语句,如果表 A 的第 1 列为空,则从表 B 中查找第 2 列,如果第 2 列为空,则从表 C 中查找第 3 列

TableA
Column 1a Column 1
1

TableB
Column 1a Column 2
1

TableC
Column 1a Column 3
1 A

如果我有表 A 和 B,即两个表,我会写如下内容:-

Case when Column A = '' or Column A is null then Column B
else Column A
from tableA a
Left join TableB b on a.column 1a = b.column 1a

但我不知道如何在 case 语句中包含 3 列。感谢您的帮助!

最佳答案

您可以使用coalesce()nullif()像这样:

select 
a.Column1a
, Value = coalesce(nullif(a.Column1,''),nullif(b.Column2,''),c.Column3)
from TableA a
left join TableB b
on a.Column1a = b.Column1a
left join TableC c
on a.Column1a = c.Column1a

coalesce() 将返回参数中的第一个非 null 值,nullif(...,'') 将返回null 而不是空字符串 ''

这相当于:

select 
a.Column1a
, Value = case when a.Column1 is not null and a.Column1 <> '' then a.Column1
when b.Column2 is not null and b.Column2 <> '' then b.Column2
else c.Column3
end
from TableA a
left join TableB b
on a.Column1a = b.Column1a
left join TableC c
on a.Column1a = c.Column1a

关于sql-server - 基于 3 个表 MSSQL 的 Case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46547760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com