ID가있는 테이블에 행 그룹이 있습니다. 나는 여러 열이있는 행에서 그것을 평평하게하려고 노력하고있다. 나는 거의 cte와 어쩌면 파티션으로 이것을 해냈다.열을 행으로 병합하려고 시도합니다.
필자는 중복 된 데이터를 삭제하기 위해 cte 's를 사용했으며, 여기에서 성취하고자하는 것과 비슷한 것을 수행했다고 생각했습니다. 나는 실행할 수있는 해결책을 제시 할 수 있었지만 (여전히 아래에 열거 됨)보다 우아한 해결책이 있어야한다고 생각합니다. CTE/파티션이를 위해 --trying
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
:
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
덕분에 너무 많은. 피벗은 절대적으로 내가 찾고있는 것입니다. 나는 그것을 시도했지만 max()를 사용하지 않았다. 다시 한 번 감사드립니다. – boone
@boone 당신을 환영합니다 !! :) – Taryn
매우 유용한 기능, 감사합니다 – AlexFoxGill