Ich verwende Microsoft SQL Server 2008.
Ich habe eine Tabelle, die ungefähr so aussieht:
Ich möchte die Zeilen in Spalten umdrehen, damit diese Tabelle wie folgt aussieht:
%Vor%(die Beispieldaten sind hier willkürlich zusammengestellt, also ist es albern)
Die Quellentabelle ist eine temporäre Tabelle mit ungefähr 70.000 Zeilen.
Zu welchem SQL müsste ich dazu schreiben?
Aktualisieren
<aggregation function>
und <column being aggregated>
und ich möchte nichts aggregieren. Vielen Dank im Voraus.
Es ist erforderlich, eine Aggregatfunktion zu verwenden, wenn Sie PIVOT
verwenden. Da Ihre (RespondentId, QuestionId)
-Kombination jedoch eindeutig ist, haben Ihre "Gruppen" nur eine Zeile, so dass Sie MIN()
als eine Aggregatfunktion verwenden können:
Wenn eine Gruppe nur eine Zeile enthält, dann MIN(value) = value
, oder mit anderen Worten: Die Aggregatfunktion wird zur Identitätsfunktion.
PIVOT ist ein Anfang, aber die Sache mit sql-Abfragen ist, dass Sie wirklich wissen müssen, welche Spalten in der Ergebnismenge vor dem Schreiben der Abfrage zu erwarten sind. Wenn Sie das nicht wissen, müssen Sie beim letzten Überprüfungsvorgang entweder auf dynamic sql zurückgreifen oder der Client-App, die die Daten abruft, stattdessen die Verwendung des Pivots gestatten.
Tags und Links sql sql-server-2008