15
我在表中有一組具有ID的行。我試圖用多列將它壓平。我幾乎肯定我已經用cte和可能的分區來做到這一點。試圖將行平鋪到列中
我已經使用cte刪除重複的數據,我以爲我做了類似於我在這裏嘗試完成的事情。我能夠想出可行的解決方案(下面列出),但仍然覺得應該提供更優雅的解決方案。
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與CTE /分區來實現:
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