Ausführliche Anleitung zur Spaltenkonvertierung in SQL Server
Wenn Sie mit Tabellen arbeiten, die eine große Anzahl von Metrikspalten enthalten, kann die Konvertierung dieser Spalten in Zeilen für Analyse- und Berichtszwecke sehr nützlich sein. Bei dieser Transformation werden die Daten umstrukturiert, um neue Tabellen mit einem anderen Schema zu erstellen.
Problembeschreibung
Betrachten Sie das folgende Tabellenschema:
<code>[ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] ... [Indicator150]</code>
Das Ziel besteht darin, diese Metrikspalten in Zeilen umzuwandeln und eine neue Tabelle mit dem folgenden Schema zu erstellen:
<code>[ID] [EntityId] [IndicatorName] [IndicatorValue]</code>
Lösung mit UNPIVOT
Eine elegante Lösung zur Bewältigung dieser Aufgabe ist die Verwendung der UNPIVOT-Funktion. Die Syntax von UNPIVOT lautet wie folgt:
<code>UNPIVOT ([unpivot column] FOR [pivot column] IN ([pivot values]))</code>
In diesem Beispiel stellt die Unpivot-Spalte den Indikatorwert dar (z. B. „Indikator1“, „Indikator2“ usw.), während die Pivot-Spalte den Spaltennamen selbst darstellt. Die folgende Abfrage veranschaulicht die Verwendung von UNPIVOT:
<code>select id, entityId, indicatorname, indicatorvalue from yourtable unpivot ( indicatorvalue for indicatorname in (Indicator1, Indicator2, Indicator3) ) unpiv;</code>
Durch die Ausführung dieser Abfrage werden die Metrikspalten in Zeilen umgewandelt und die Metriknamen und -werte füllen die neuen Spalten.
Alternativen
Neben UNPIVOT gibt es noch andere Möglichkeiten, Spalten in Zeilen umzuwandeln:
Die Wahl der Lösung hängt von den spezifischen Anforderungen und der verwendeten SQL Server-Version ab.
Das obige ist der detaillierte Inhalt vonWie kann ich Spalten in SQL Server effizient in Zeilen konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!