Ich habe eine Tabelle, die ich den ersten Nicht-Null-Wert aus 3 (und nur 3) Spalten für jede ID beginnend mit Col1 dann zu Col2 dann zu Col3 finden möchten
Hinweis: Spalte 3 ist NIEMALS NULL
ID Col1 Col2 Col3
------------------------------
1 A B X
2 NULL C X
3 NULL NULL X
4 D NULL X
Um die richtige Spalte für jeden Wert zu erhalten, verwende ich den folgenden SQL Select
SELECT ID,
COALESCE(Col1, Col2, Col3) AS Col
FROM MyTable
das folgendes Ergebnis liefert und einwandfrei funktioniert
ID Col
-------------
1 A
2 C
3 X
4 D
Ich möchte, dass eine dritte Spalte zurückgegeben wird, die angibt, für welche Spalte die Zusammenführung erfolgreich war. Im Folgenden ist die Ergebnismenge aufgeführt, die ich erzeugen möchte:
ID Col Source
-----------------------
1 A Col1
2 C Col2
3 X Col3
4 D Col1