Es wird versucht, einige einfache SQL Server PIVOT-Beispiele zu finden. Die meisten Beispiele, die ich gefunden habe, beinhalten das Zählen oder Summieren von Zahlen. Ich möchte nur einige Zeichenfolgendaten schwenken. Zum Beispiel habe ich eine Abfrage, die Folgendes zurückgibt.
Action1 VIEW
Action1 EDIT
Action2 VIEW
Action3 VIEW
Action3 EDIT
Ich möchte PIVOT (wenn überhaupt möglich) verwenden, um die Ergebnisse wie folgt zu erzielen:
Action1 VIEW EDIT
Action2 VIEW NULL
Action3 VIEW EDIT
Ist das mit der PIVOT-Funktionalität überhaupt möglich?
sql-server
tsql
pivot
Tim Cochran
quelle
quelle
Antworten:
Denken Sie daran, dass die MAX-Aggregatfunktion sowohl für Text als auch für Zahlen funktioniert. Für diese Abfrage muss die Tabelle nur einmal gescannt werden.
quelle
...ELSE NULL END...
anstelle von verwenden sollte...ELSE '' END...
?Tabellenaufbau:
Dein Tisch:
SELECT action, view_edit FROM dbo.tbl
Abfrage ohne PIVOT:
Abfrage mit PIVOT:
Beide Abfragen ergeben:
quelle
Wenn Sie speziell die SQL Server PIVOT-Funktion verwenden möchten, sollte dies funktionieren, vorausgesetzt, Ihre beiden ursprünglichen Spalten heißen act und cmd. (Nicht so schön anzusehen.)
quelle
Von http://blog.sqlauthority.com/2008/06/07/sql-server-pivot-and-unpivot-table-examples/ :
quelle
Nun, für Ihre Stichprobe und jede mit einer begrenzten Anzahl eindeutiger Spalten sollte dies der Fall sein.
quelle
quelle
Ich hatte eine Situation, in der ich Zeichenfolgen analysierte und die ersten beiden Positionen der betreffenden Zeichenfolge die Feldnamen eines Kodierungsstandards für Ansprüche im Gesundheitswesen waren. Also würde ich die Strings entfernen und Werte für F4, UR und UQ oder so weiter erhalten. Dies war großartig für einen Datensatz oder einige Datensätze für einen Benutzer. Aber als ich Hunderte von Datensätzen und die Werte für alle Benutzer sehen wollte, musste es ein PIVOT sein. Dies war besonders für den Export vieler Schallplatten wunderbar, um hervorragende Leistungen zu erbringen. Die spezifische Berichtsanfrage, die ich erhalten hatte, lautete: "Jedes Mal, wenn jemand einen Anspruch für Benadryl eingereicht hat, welchen Wert hat er in den Feldern F4, UR und UQ eingereicht. Ich hatte eine AUSSENANWENDUNG, die den ColTitle und die Wertfelder unten erstellt hat."
quelle