首页 > 解决方案 > T-SQL:将行转换为列

问题描述

我会有这样的数据

ID 姓名 属性 类型
1 产品_1 红色的 颜色
2 产品_1 小的 尺寸
3 产品_2 红色的 颜色
4 产品_2 大的 尺寸

我希望它是这样的

姓名 颜色 尺寸
产品_1 红色的 小的
产品_2 红色的 大的

我试过枢轴但找不到路

select Name, [Color], [Size] from 
(
    select Name, [Type] , Attributes
    from @temp_table ) AS sourceTable
PIVOT
(
    MAX(Attributes)
    FOR  [Type] IN ([Color], [Size])
) as pivot_table

标签: sqlsql-servertsql

解决方案


我刚刚发现我的代码没有任何问题。

select fcId, [Color], [Size] from 
(
    select Id, [Type] , Attribute
    from @temp_table ) AS sourceTable
PIVOT
(
    MAX(Attribute)
    FOR  [Type] IN ([Color], [Size])
) as pivot_table

推荐阅读