Switch 関数を使用して、必要なロジックを表現できます。
これは、以下のクエリからの出力です。最初の 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;