Ich versuche, eine Tabelle um viele Spalten zu schwenken, um zu drei Spalten zu gelangen (Pivot, Spaltenname, Wert)
also zum Beispiel:
%Vor%würde werden:
%Vor%Ich habe ziemlich viel gegoogelt, aber ich habe keine ähnliche Situation gefunden - vor allem, da der Drehpunkt anscheinend in die entgegengesetzte Richtung verläuft, was ich versuche zu erreichen.
Die Umwandlung von Spalten in Zeilen wird als UNPIVOT
bezeichnet. Sie haben nicht angegeben, welche Version von SQL Server Sie verwenden, aber es gibt verschiedene Möglichkeiten, das Ergebnis zu erhalten.
Sie können SELECT
mit UNION ALL
verwenden:
Wenn Sie SQL Server 2005+ verwenden, können Sie die UNPIVOT-Funktion verwenden:
%Vor% Schließlich können Sie statt der UNPIVOT-Funktion auch CROSS APPLY
entweder mit VALUES
(2008+) oder UNION ALL
:
Jede dieser Versionen gibt Ihnen das gewünschte Ergebnis. Sie werden feststellen, dass ich die age
-Spalte in varchar
umwandeln musste. Dies liegt daran, dass der Datentyp / die Länge (in Univivot) der Spalten identisch sein muss, da Sie sie im Endergebnis in eine einzelne Spalte umwandeln werden.
Tags und Links sql sql-server unpivot