从另一个表的行创建表的列

时间:2017-06-21 18:16:38

标签: mysql sql

我有一张这样的表:

Item    Property    Value
1       a           20
1       b           34
1       c           36
2       a           21
2       b           32
2       k           11
2       t           15

我想要一张这样的桌子:

Item    a       b       c       k        t
1       20      34      36  
2       21      32              11       15

无论如何使用一个SQL查询来执行此操作吗?

1 个答案:

答案 0 :(得分:0)

如果您不想手动输入属性列的名称,我相信您唯一的选择就是动态执行此操作。这是动态的方式:

声明@propCols varchar(max)
选择@propCols = isnull(@ propCols +',','')+来自property_table的QUOTENAME(属性)

声明@qry varchar(max)
设置@qry = '选择项目,' + @ propCols +
 '来自表
 pivot((' + @propCols +')中的属性的min(value))作为pvt

exec sp_executesql @qry