Col1、Col2、Col3の順に各IDの3つ(そして3つだけ)の列から最初のnull以外の値を見つけたいテーブルがあります。
注:Col3は決してNULLではありません
ID Col1 Col2 Col3
------------------------------
1 A B X
2 NULL C X
3 NULL NULL X
4 D NULL X
各値の正しい列を取得するには、次のSQLSelectを使用します
SELECT ID,
COALESCE(Col1, Col2, Col3) AS Col
FROM MyTable
これは以下を返し、問題なく動作します
ID Col
-------------
1 A
2 C
3 X
4 D
私が欲しいのは、合体が成功した列を示す3番目の列が返されることです。以下は、私が作成したい結果セットです。
ID Col Source
-----------------------
1 A Col1
2 C Col2
3 X Col3
4 D Col1