在先前 COALESCE 的另一个值中使用相同的表

问题描述 投票:0回答:0

我有合并两个表的视图。 select 请求的值之一必须位于其中一个表中,另一个必须具有 null 作为此值。作为解决方案,我使用 coalesce

COALESCE(tbl1.Val, tbl2.Val) As Val

我现在正努力从与 Val 相同的表中选择下一个值,因为它们在两个表中可能不同/为 NULL。

我在想什么伪

(if tbl1.Val = NULL then tbl1.Val2 else tbl2.Val2) as Val2

可以用sql函数写吗? (IIF,ISNULL,NULLIF,......可能?)

3 个表会变得多复杂?

输入

tbl1.Val = NULL,
tbl2.Val = NULL,
tbl3.Val = 'VALUE'

tbl1.Val2 = 'NOT THIS ONE',
tbl2.Val2 = 'NOT THIS ONE',
tbl3.Val2 = 'THIS ONE'

期待

Val     Val2
'Value' 'THIS ONE'

我试过这样的结构

IIF(tbl1.Val = NULL, tbl1.Val2, tbl2.Val2)
IIF(ISNULL(tbl1.Val, False), tbl1.Val2, tbl2.Val2)
sql-server null coalesce sql-server-2019
© www.soinside.com 2019 - 2024. All rights reserved.