Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine T-SQL-Tabelle ohne Verwendung von Aggregatfunktionen drehen?
T-SQL-Pivot: Keine Aggregationsfunktionen erforderlich
In einigen Fällen müssen Sie möglicherweise Daten in einer Tabelle in das Pivot-Format konvertieren, ohne Aggregatfunktionen wie SUM oder COUNT zu verwenden. Dieses Beispiel zeigt eine einzigartige Möglichkeit, den PIVOT-Operator zu verwenden, wenn Aggregatfunktionen nicht erforderlich sind.
Angenommen, es gibt eine Quelltabelle mit Kundeninformationen:
CustomerID | DBColumnName | Data |
---|---|---|
1 | FirstName | Joe |
1 | MiddleName | S |
1 | LastName | Smith |
1 | Date | 12/12/2009 |
2 | FirstName | Sam |
2 | MiddleName | S |
2 | LastName | Freddrick |
2 | Date | 1/12/2009 |
3 | FirstName | Jaime |
3 | MiddleName | S |
3 | LastName | Carol |
3 | Date | 12/1/2009 |
Die Zielausgabe ist eine Pivot-Tabelle, die Kundeninformationen in separaten Spalten anzeigt:
CustomerID | FirstName | MiddleName | LastName | Date |
---|---|---|---|---|
1 | Joe | S | Smith | 12/12/2009 |
2 | Sam | S | Freddrick | 1/12/2009 |
3 | Jaime | S | Carol | 12/1/2009 |
Um dies ohne die Verwendung von Aggregatfunktionen zu erreichen, können Sie die folgende T-SQL-Abfrage verwenden:
<code class="language-sql">SELECT CustomerID, MIN(CASE DBColumnName WHEN 'FirstName' THEN Data END) AS FirstName, MIN(CASE DBColumnName WHEN 'MiddleName' THEN Data END) AS MiddleName, MIN(CASE DBColumnName WHEN 'LastName' THEN Data END) AS LastName, MIN(CASE DBColumnName WHEN 'Date' THEN Data END) AS Date FROM table GROUP BY CustomerId;</code>
Diese Abfrage verwendet die MIN-Funktion in einer CASE-Anweisung, um den Mindestwert für jede Spalte basierend auf DBColumnName auszuwählen. Die „GROUP BY“-Klausel wird verwendet, um die Ergebnisse nach CustomerID zu gruppieren.
Obwohl dieser Ansatz im Vergleich zur Verwendung von Aggregatfunktionen umständlich und ineffizient erscheinen mag, kann er in bestimmten Situationen, in denen Aggregatfunktionen nicht geeignet sind (z. B. beim Umgang mit eindeutigen oder unterschiedlichen Werten), eine größere Flexibilität bieten. Bewerten Sie unbedingt die spezifischen Anforderungen Ihrer Anfrage und wählen Sie den für die jeweilige Situation am besten geeigneten Ansatz.
Das obige ist der detaillierte Inhalt vonWie kann ich eine T-SQL-Tabelle ohne Verwendung von Aggregatfunktionen drehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!