您可以使用Switch Function来表达您想要的逻辑。
这是下面查询的输出。前 5 列包含在DataTable中,最后一列由Switch
表达式生成。
id State1 State2 State3 State4 computed_column
-- ------ ------ ------ ------ ---------------
1 a a
2 b b
3 c c
4 d d
5 all Null
SELECT
d.id,
d.State1,
d.State2,
d.State3,
d.State4,
Switch(
d.State1 Is Not Null, d.State1,
d.State2 Is Not Null, d.State2,
d.State3 Is Not Null, d.State3,
d.State4 Is Not Null, d.State4,
True, 'all Null'
) AS computed_column
FROM DataTable AS d;
或者,如果您将从 Access 会话中运行查询,则可以使用嵌套的Nz Functions。此查询产生与上述相同的结果。
SELECT
d.id,
d.State1,
d.State2,
d.State3,
d.State4,
Nz(d.State1,
Nz(d.State2,
Nz(d.State3,
Nz(d.State4,
'all Null')))
) AS computed_column
FROM DataTable AS d;