Ich habe eine Tabelle mit Attributen, die auf einem Schlüsselwert basieren. Beispiel:
%Vor%Wenn ich hieraus wähle, bekomme ich:
%Vor%Ich habe mich gefragt, ob ich die PIVOT-Syntax verwenden könnte, um dies in:
umzuwandeln %Vor%Ich weiß, dass alle meine Tabellen die gleichen Schlüssel haben werden. (Leider kann ich die Tabellenstruktur nicht einfach ändern. Das ist es, was mich dazu bringt, PIVOTS zu versuchen).
Das große Problem hierbei ist jedoch, dass Pivots eine Aggregationsfunktion benötigen, um verwendet zu werden. Gibt es eine Möglichkeit, dies abzuwenden? Tue ich es völlig falsch, dies zu versuchen? Oder gibt es eine bessere Lösung?
Ein Pivot ist nicht schneller als wiederholte Self-Joins für eine feste Spaltenausgabe.
%Vor%Wenn Sie PIVOT verwenden möchten, verwenden Sie einfach MAX. Da Sie pro Objekt / Schlüssel eine Zeile haben, ist es trotzdem trivial und erfüllt die PIVOT-Anforderung.
Wenn Sie eine unbekannte Anzahl von Zeilen in Spalten PIVOTIEREN möchten, dann ist dies dynamisches SQL (gemäß SQL Server 2000-Lösungen) oder im Client-Code.
Wenn jedes Objekt eine feste Anzahl von Attributen hat, würde ich eine zweite Tabelle mit echten Spalten, die von einem Trigger verwaltet werden, in Erwägung ziehen. Tollpatschig, aber macht das Lesen leichter
Tags und Links sql-server-2005 pivot