Pivotieren von Daten in SQL Server 2000: Eine detaillierte Erklärung
SQL Server 2000 bietet eine leistungsstarke Funktion namens Pivotieren, mit der Benutzer Daten aus transformieren können von einem zeilenbasierten Format in ein spaltenbasiertes Format. Dies kann für Szenarien nützlich sein, in denen Sie Daten über mehrere Spalten hinweg zusammenfassen oder eine Matrixansicht der Daten erstellen müssen.
Problemstellung:
In einem bestimmten Fall Ein Benutzer hat zwei Tabellen:
Der Benutzer benötigt einen Ergebnissatz, der die MetaValue-Spalte aus dem dreht Produkt-Metatabelle basierend auf der Spalte „MetaKey“, mit den Spalten „ProductId“ und „Name“ aus der Tabelle „Products“ als Zeile Header.
Optimale Lösung:
Um diese Transformation zu erreichen, können Sie die folgende SQL-Abfrage verwenden:
SELECT P.ProductId, P.Name , MIN(CASE WHEN PM.MetaKey = 'A' THEN PM.MetaValue END) AS A , MIN(CASE WHEN PM.MetaKey = 'B' THEN PM.MetaValue END) AS B , MIN(CASE WHEN PM.MetaKey = 'C' THEN PM.MetaValue END) AS C FROM Products AS P JOIN ProductMeta AS PM ON PM.ProductId = P.ProductId GROUP BY P.ProductId, P.Name
Erklärung:
Hinweis:
Die Verwendung einer GROUP BY-Klausel ist in diesem Szenario unerlässlich, um sicherzustellen, dass die Zeilen korrekt gruppiert sind. Wenn keine GROUP BY-Klausel verwendet würde, würde dies zu einem gestaffelten Ergebnis führen. Darüber hinaus muss jede Spalte, die nicht in der GROUP BY-Klausel enthalten ist, in eine Aggregatfunktion (in diesem Fall MIN()) eingeschlossen werden.
Das obige ist der detaillierte Inhalt vonWie kann ich Daten in SQL Server 2000 Pivotieren, um zeilenbasierte Daten in ein spaltenbasiertes Format umzuwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!