„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie können Spalten in SQL Server Spalten effizient in Zeilen konvertieren?

Wie können Spalten in SQL Server Spalten effizient in Zeilen konvertieren?

Gepostet am 2025-04-13
Durchsuche:420

How Can I Efficiently Convert Columns to Rows in SQL Server?

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:

  • cross bewerben Sie mit Union alle: Diese Methode beinhaltet die Verwendung von Cross Apply und Union alle, um jeden metrischen Namen und Wert ausdrücklich anzugeben.
  • cross wenden mit Werten an. ähnelt der obigen Methode, aber die Werteklausel wird in Cross verwendet.
  • Dynamisches SQL: Für Situationen mit einer großen Anzahl von Anzeigenspalten können Sie dynamische SQL verwenden, um automatisch Abfrageanweisungen zu generieren.

Die Auswahl einer Lösung hängt von den spezifischen Anforderungen und der verwendeten Version des SQL -Servers ab.

Neuestes Tutorial Mehr>

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