Tôi có một nhóm các hàng trong một bảng có id. Tôi đang cố gắng để làm phẳng nó ra trong hàng với nhiều cột. Tôi gần như chắc chắn tôi đã làm điều này với một cte và có thể phân vùng.cố gắng làm phẳng các hàng thành các cột
Tôi đã sử dụng cte để xóa dữ liệu trùng lặp và tôi nghĩ rằng tôi đã làm điều gì đó tương tự như những gì tôi đang cố gắng thực hiện ở đây. Tôi đã có thể đưa ra giải pháp khả thi (được liệt kê dưới đây) nhưng vẫn cảm thấy như một giải pháp thanh lịch hơn nên có sẵn.
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 để thực hiện điều này với CTE/phân vùng:
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
cảm ơn rất nhiều. trục là hoàn toàn những gì tôi đang tìm kiếm. tôi đã thử điều đó nhưng không sử dụng max(). cảm ơn một lần nữa. – boone
@boone bạn được chào đón !! :) – Taryn
tính năng rất hữu ích, cảm ơn – AlexFoxGill