Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Transponieren Sie eine Reihe von Zeilen als Spalten in SQL Server 2000

Das Beispiel unter http://jdixon.dotnetdevelopersjournal.com/pivot_table_data_in_sql_server_2000_and_2005.htm funktioniert nur, wenn Sie im Voraus wissen, was die Zeilenwerte sein können. Angenommen, Sie haben eine Entität mit benutzerdefinierten Attributen und die benutzerdefinierten Attribute sind als Zeilen in einer untergeordneten Tabelle implementiert, wobei die untergeordnete Tabelle im Wesentlichen aus Variablen/Wert-Paaren besteht und diese Variablen/Wert-Paare konfigurierbar sind.

color red
size  big
city  Chicago

Ich werde eine Technik beschreiben, die funktioniert. Ich habe es benutzt. Ich werbe NICHT dafür, aber es funktioniert.

Um die Daten zu pivotieren, wo Sie nicht wissen, was die Werte im Voraus sein können, erstellen Sie spontan eine temporäre Tabelle ohne Spalten. Verwenden Sie dann einen Cursor, um Ihre Zeilen zu durchlaufen und eine dynamisch erstellte "Änderungstabelle" für jede Variable auszugeben, sodass Ihre temporäre Tabelle am Ende die Spalten, Farbe, Größe und Stadt enthält.

Dann fügen Sie eine Zeile in Ihre temporäre Tabelle ein, aktualisieren sie über einen anderen Cursor durch die Variablen-Wert-Paare und wählen sie dann aus, normalerweise verbunden mit ihrer übergeordneten Entität, wodurch es so aussieht, als wären diese benutzerdefinierten Variablen/Wert-Paare wie gebaut. in Spalten in der ursprünglichen übergeordneten Entität.