Heim > Datenbank > MySQL-Tutorial > Wie werden Produktmetadaten in SQL Server 2000 mithilfe einer JOIN- und Aggregate-Funktion geschwenkt?

Wie werden Produktmetadaten in SQL Server 2000 mithilfe einer JOIN- und Aggregate-Funktion geschwenkt?

Patricia Arquette
Freigeben: 2025-01-02 18:29:39
Original
406 Leute haben es durchsucht

How to Pivot Product Metadata in SQL Server 2000 using a JOIN and Aggregate Function?

Pivot-Transformation mit SQL Server 2000

Problem:

Ihre Datenbank enthält zwei Tabellen, Produkte und Produkt-Meta mit den folgenden Strukturen:

Products:
- ProductId
- Name

Product Meta:
- ProductId
- MetaKey
- MetaValue
Nach dem Login kopieren

Sie möchten diese Daten in umwandeln eine Ergebnismenge, die die MetaValue-Spalte basierend auf der MetaKey-Spalte dreht. Die gewünschte Ergebnismenge ist:

ProductId | Name | A | B | C
Nach dem Login kopieren

Lösung:

Obwohl die zuvor vorgeschlagenen Lösungen möglicherweise nicht optimal sind, heben sie dennoch die Verwendung von Aggregatfunktionen oder Unterabfragen hervor Stellen Sie eine gültige Gruppierung sicher. Hier ist ein alternativer Ansatz:

SELECT
  P.ProductId,
  P.Name,
  MAX(CASE WHEN PM.MetaKey = 'A' THEN PM.MetaValue END) AS A,
  MAX(CASE WHEN PM.MetaKey = 'B' THEN PM.MetaValue END) AS B,
  MAX(CASE WHEN PM.MetaKey = 'C' THEN PM.MetaValue END) AS C
FROM Products AS P
LEFT JOIN ProductMeta AS PM
  ON PM.ProductId = P.ProductId
GROUP BY
  P.ProductId,
  P.Name;
Nach dem Login kopieren

Diese Abfrage verknüpft die Tabellen „Products“ und „Product Meta“ und gruppiert die Ergebnisse nach ProductId und Name. Die Aggregatfunktion MAX() wird verwendet, um den maximalen MetaValue für jeden MetaKey zu extrahieren. Dadurch wird sichergestellt, dass nur der neueste bzw. aktuellste MetaValue für jeden Schlüssel im Ergebnissatz enthalten ist.

Das obige ist der detaillierte Inhalt vonWie werden Produktmetadaten in SQL Server 2000 mithilfe einer JOIN- und Aggregate-Funktion geschwenkt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage