gleicher Wert in mehreren Spalten suchen und als Ergebnis die Spalte zurückbekommen

Pippsen14

Neuer Benutzer
Beiträge
2
Hallo,

mein Problem ist das ich eine Nummer habe und die in 3 Unterschiedlichen Spalten einer SQL Tabelle stehen kann. Den Wert grundsätzlich zu finden ist kein Thema, da ich die "Where" Bedingung mit einem "or" verknüpfe. Ich möchte aber gerne wissen in welcher Spalte der Wert gefunden wurde. Kann mir jemand einen Tipp geben?

Ich benutze Microsoft SQL Server 2015

Vielen lieben Dank
 
Werbung:
Code:
andreas@[local]:5432/test# create table pippsen14(a int, b int, c int);
CREATE TABLE
andreas@[local]:5432/test# insert into pippsen14 values (1,2,3);
INSERT 0 1
andreas@[local]:5432/test# select case when a=3 then 'a' when b=3 then 'b' when c=3 then 'c' end as spalte from pippsen14 ;
 spalte
--------
 c
(1 row)

PG, sollte aber portabel sein.
 
akretschmer's Code hat einen kleinen Haken: Wenn der Wert in A und B gefunden wird dann ist das Ergebnis der CASE-Anweisung nur 'a'. Jetzt ist die Frage ob das überhaupt wichtig ist, ob dann Zeilen mehrfach als Ergebnis ausgegeben werden sollen oder ob in der vom CASE erzeugten Spalte mehr Information stehen soll.
 
Werbung:
yeah, man könnte es erweitern:

Code:
andreas@[local]:5432/test# select * from pippsen14 ;
 a | b | c | d
---+---+---+---
 1 | 2 | 3 | 3
(1 row)

andreas@[local]:5432/test# select case when a=3 then 'a' else '' end || case when b=3 then 'b' else '' end || case when c=3 then 'c' else '' end || case when d=3 then 'd' else '' end from pippsen14 ;
 ?column?
----------
 cd
(1 row)

andreas@[local]:5432/test#
 
Zurück
Oben