我有这张桌子
F_name ID Type Result
George 1 T-shirt Y
George 1 Pants N
George 2 Boots O
Dani 2 T-shirt Y
Dani 1 Boots Y
我需要SQL服务器查询来合并具有相同F_name和ID的行,并按照以下方式转置列类型和结果。
F_name ID T-shirt Pants Boots
George 1 Y N null
George 2 null null O
Dani 2 Y null null
Dani 1 null null Y
我被困住了,我不知道从哪里开始。 谢谢你... ...
答案 0 :(得分:0)
我认为这是您需要的代码:
SELECT *
FROM mytable
PIVOT
( MIN([Result])
FOR [Type] IN ([T-Shirt], [Pants], [Boots])
)AS p
ORDER BY F_name, ID ASC;
如果您想查看它的实际效果,请查看this SQL Fiddle。
如果你想要动态列(T-shit,Pants,Boots),请检查这个问题/答案: SQL Server - Pivot two columns on a 3 column table