Transponieren von Zeilen in Spalten in SQL Server 2008 R2
Wie schalte ich diese:
und so:
in diesem:
in SQL Server 2008 R2?
- Haben Sie gehört, über pivot Abfragen?
- Nein habe ich nicht. Kann es sinnvoll sein, in meinem Fall?
- D ' Oh. Gelöscht mein Kommentar! Aber ich bin sicher, dass diese Fragen schon beantwortet, oft hier SO.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Frage ist sehr ähnlich wie diese PIVOT-Zeilen zu den Spalten mit mehr als 1 Rückgabewert, wo Sie brauchen, um Aggregat-string-Daten von Zeilen in Spalten. Werde ich ändern, dass die Antwort um zu demonstrieren, wie können Sie konvertieren Sie Ihre Daten, um Ihre endgültige Ergebnis.
Da Sie die Aggregation von string-Werten, die Sie benötigen, um entweder die
min()
odermax()
Aggregatfunktion, aber um das Letzte Ergebnis anzuzeigen, die mehr als eine Zeile benötigen Sie etwas Kraft, die mehrere Zeilen.Um dies zu tun, werden Sie verwenden möchten
row_number()
zum generieren eines eindeutigen Sequenznummer für jedesparameter
imname
. Wenn Sie die PIVOT-Funktion, wird diese Zahl verwendet werden, in der Gruppierung und generieren Sie mehrere Zeilen:Sehen SQL Fiddle mit Demo.
Dies könnte auch geschrieben werden, mit einer Aggregatfunktion mit einem CASE-Ausdruck:
Sehen SQL Fiddle mit Demo.
Den beiden oben genannten Versionen sind großartig, wenn Sie haben eine bekannte Anzahl von Namen, dann Sie können schwer-code der Abfrage, aber wenn Sie nicht sind, dann haben Sie dynamisches SQL verwenden:
Sehen SQL Fiddle mit Demo. Alle Versionen ein Ergebnis geben:
vehicletypes