Rolf B: PIVOT Funktion in MS SQL nutzen, ich bekomme es nicht hin

Beitrag lesen

Hallo Ingo,

was Du da willst, ist ja auch kein PIVOT, sondern das Gegenteil: auf Spalten verteilte Attribute zeilenweise auflisten. Dazu gibt's die UNPIVOT Klausel im SELECT.

Guck mal hier: https://docs.microsoft.com/en-us/sql/t-sql/queries/from-using-pivot-and-unpivot - das Beispiel für UNPIVOT ist ganz am Ende.

In deinem Fall müsste es in etwa so aussehen:

SELECT Feld, Wert
FROM   
   (SELECT Sn, gelb0, rot0, gelb1, rot1 FROM mytable WHERE IP=1) t
UNPIVOT  
   (Wert FOR Feld IN (Sn, gelb0,rot0, gelb1,rot1)) as unpvt

Hinweise:

  • mytable musst Du durch den Manem deiner Tabelle ersetzen
  • Deine Tabellenstruktur habe ich möglicherweise falsch verstanden. Hast Du tatsächlich Leerstellen in Spaltennamen?
  • Ungetestet, nur auf Grund der MS Doc gebastelt.

Wenn's nicht klappt, viel Glück mit dem Link. Mehr als dort steht weiß ich auch nicht.

Die IP kannst Du auch in die Query durchreichen:

SELECT IP, Feld, Wert
FROM   
   (SELECT IP, Sn, gelb0, rot0, gelb1, rot1 FROM mytable WHERE IP=1) t
UNPIVOT  
   (Wert FOR Feld IN (Sn, gelb0,rot0, gelb1,rot1)) as unpvt

Rolf

--
sumpsi - posui - clusi