eingehende Anleitung zur Spalte Conversion in SQL Server
Bei der Bearbeitung von Tabellen mit einer großen Anzahl metrischer Spalten ist das Umwandeln dieser Spalten in Zeilen sehr vorteilhaft für Analyse- und Berichtszwecke. Diese Transformation umfasst den Wiederaufbau der Daten, um neue Tabellen mit unterschiedlichen Schemata zu erstellen.
problem Statement
Betrachten Sie die folgende Tabellenstruktur:
[ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] ... [Indicator150]
Das Ziel ist es, diese metrischen Spalten in Zeilen umzuwandeln und so eine neue Tabelle mit dem folgenden Schema zu erstellen:
[ID] [EntityId] [IndicatorName] [IndicatorValue]
]
Lösung mit Univot
Eine elegante Lösung, um diese Aufgabe zu erfüllen, besteht darin, die Unpivot -Funktion zu nutzen. Die Syntax von Unpivot lautet wie folgt:
UNPIVOT ([unpivot column] FOR [pivot column] IN ([pivot values]))
In diesem Beispiel repräsentiert die Spalte von Unpivot den Indikatorwert (z. B. "Indicator1", "Indicator2" usw.), und die Pivot -Spalte repräsentiert den Spaltennamen selbst. Die folgende Abfrage zeigt, wie man Unpivot verwendet:
select id, entityId,
indicatorname,
indicatorvalue
from yourtable
unpivot
(
indicatorvalue
for indicatorname in (Indicator1, Indicator2, Indicator3)
) unpiv;
Durch die Ausführung dieser Abfrage wird die metrische Spalte in Zeilen konvertiert und der metrische Name und der Wert werden mit der neuen Spalte besiedelt.
alternatives
Zusätzlich zu Unpivot gibt es andere Möglichkeiten, Spalten in Zeilen umzuwandeln:
Die Auswahl einer Lösung hängt von den spezifischen Anforderungen und der verwendeten Version des SQL -Servers ab.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3