Ich habe eine Gruppe von Zeilen in einer Tabelle, die eine ID haben. Ich versuche, es in Reihen mit mehreren Spalten zu reduzieren. Ich bin mir fast sicher, dass ich das mit einer Cte und vielleicht einer Partitionierung gemacht habe.versuchen, Zeilen in Spalten zu glätten
Ich habe Cte verwendet, um doppelte Daten zu löschen, und ich dachte, ich habe etwas getan, was ich hier erreichen möchte. Ich war in der Lage, eine praktikable Lösung zu finden (siehe unten), habe aber immer noch das Gefühl, dass eine elegantere Lösung verfügbar sein sollte.
CREATE TABLE #MyTable (RowID int , field VARCHAR(10), value VARCHAR(10))
INSERT INTO #MyTable (RowID, field, value) VALUES (1, 'first', 'neil')
INSERT INTO #MyTable (RowID, field, value) VALUES (2, 'first', 'bob' )
INSERT INTO #MyTable (RowID, field, value) VALUES (3, 'first', 'tom' )
INSERT INTO #MyTable (RowID, field, value) VALUES (1, 'last', 'young')
INSERT INTO #MyTable (RowID, field, value) VALUES (2, 'last', 'dylan')
INSERT INTO #MyTable (RowID, field, value) VALUES (3, 'last', 'petty')
SELECT * FROM #mytable
--trying dies mit CTE/partition zu erreichen:
SELECT rowid,
[first] = (Select value FROM #mytable where field = 'first' and rowid = t.rowid),
[last] = (Select value FROM #mytable where field = 'last' and rowid = t.rowid)
FROM #mytable t
GROUP BY rowid
Vielen Dank. Der Pivot ist absolut das, wonach ich gesucht habe. Ich hatte das auch versucht, aber nicht mit dem Max(). Danke noch einmal. – boone
@boone Sie sind herzlich willkommen! :) – Taryn
sehr nützliche Funktion, danke – AlexFoxGill