我想合并行与特定数据并转置部分表

时间:2018-02-22 16:39:16

标签: sql sql-server

我有这张桌子

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

我被困住了,我不知道从哪里开始。 谢谢你... ...

1 个答案:

答案 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