Wie kann ich mich verwandeln Zeilen in Spalten in sql server 2005
Es ist ein Frage hier bei stackoverflow mit dem gleichen Titel, aber das ist nicht das, was ich Suche.
Ich habe eine Tabelle wie die unten
Name | Count
----------------
Chery | 257
Drew | 1500
Morgon | 13
Kath | 500
Kirk | 200
Matt | 76
Muss ich zu trasform dieses Ergebnis in so etwas wie dieses
Chery | Drew | Morgon | Kath | Kirk | Matt
-------------------------------------------
257 1500 13 500 200 76
Wie kann ich erreichen, das mit sql server 2005?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt ähnliche Fragen hier,hier beantwortet stackoverflow.
Müssen Sie den operator PIVOT in Ihrer Abfrage zu erreichen, diese.Hier ist das Beispiel und die Erklärung, wie man das machen kann.Das Beispiel ist aus verwiesen diese Quelle.
Erklärung
1.Der erste Teil der Abfrage
gibt Ihnen eine schöne abgeflachte Ergebnis Ihrer Spalte Name die Werte in einer einzelnen Zeile wie folgt
Sie können lernen, mehr über das ZEUG und XML-PFAD hier und hier.
2.
SELECT + @cols + FROM
wählt alle Zeilen, die Spalte Namen für das Ergebnis-set (pvt - Schritt 3)ich.e
3.Diese Abfrage zieht alle Zeilen der Daten, die wir brauchen, um das cross-Registerkarte Ergebnisse. Die (p) nach der Abfrage, ist das erstellen einer temporären Tabelle, die Ergebnisse, die dann verwendet werden können, zu befriedigen, ist die Abfrage für Schritt 1.
4.Der PIVOT-Ausdruck
macht die eigentliche Verdichtung und setzt die Ergebnisse in eine temporäre Tabelle namens pvt als
TOP 100 PERCENT
kann geändert werden, umTOP 30
oder was auch immer, so dass Sie nicht mehr als die Anzahl von Spalten, wenn Sie eine Menge von Zeilen.Sehen Verwenden von PIVOT und UNPIVOT.
Die schnelle Antwort, ist
Wenn Sie vermeiden wollen, etwas kompliziertes wie eine pivot oder die akzeptierte Antwort, die Sie dies tun können! (der meiste code ist nur das einrichten der test-Daten-nur falls jemand es versuchen will)