15
IDがある表に行のグループがあります。私は複数の列を持つ行でそれを平坦化しようとしています。私はこれをcteと多分パーティションで行っていることはほとんど確信しています。列を行に展開しようとしています
私はcteを使用して重複データを削除しましたが、私がここで達成しようとしているものに似た何かをしたと思いました。私は実行可能な解決策(下にリストされています)を考え出すことができましたが、より洗練されたソリューションが利用可能になるはずです。 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