T:SQL: wählen Sie Werte aus den Zeilen als Spalten
Ich habe eine Tabelle für Profile speichert die Profil-Eigenschaften Werte in der Zeile style, ex:
[ProfileID] [PropertyDefinitionID] [PropertyValue]
1 6 Jone
1 7 Smith
1 8 Mr
1 3 50000
und eine weitere Tabelle für die eigenschaftsdefinitionen :
[PropertyDefinitionID] [PropertyName]
6 FirstName
7 LastName
8 Prefix
3 Salary
Wie zu verwenden PIVOT
oder andere Weise zu zeigen, dass es auf diese Weise:
[ProfileID] [FirstName] [LastName] [Salary]
1 Jone Smith 5000
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es einfach, dies zu tun, ohne
PIVOT
Stichwort, nur durch die Gruppierungkönnen Sie dies auch tun, mit
PIVOT
StichwortUPDATE: Für dynamische Anzahl von Eigenschaften - nehmen Sie einen Blick auf Inkrement-Wert in SQL-SELECT-Anweisung
Wie es aussieht, haben Sie möglicherweise eine unbekannte Anzahl von
PropertyName's
dass Sie brauchen, um in Spalten. Wenn das der Fall ist, dann können Sie dynamisches sql verwenden, um zu erzeugen das Ergebnis:Sehen SQL Fiddle mit Demo.
for xml
wenn Sie brauchen nur zu concat Spalten in eine variable. Es könnte auch Sicherheits-Probleme, wenn Sie versuchen, wählen Sie die Daten aus der Tabelle, zum Beispiel, kann der Benutzer über die entsprechenden Berechtigungen für die Prozedur, aber Sie haben keine Berechtigungen auf die Tabellen. Werfen Sie einen Blick auf meine Antwort hier - stackoverflow.com/questions/13055295/...