sql server flatten表层次结构

时间:2015-01-26 16:22:43

标签: sql sql-server database

我想像这样转换一个表:

Parent  Child   Value
1       Color   Red
1       Height  11
1       Width   12
1       Length  11
2       Color   Blue
2       Height  10
2       Width   2
2       Length  5

进入这个:

Parent  Color   Height  Width   Length
1       Red     11      12      11
2       Blue    10      2       5   

子属性可以随时更改,因此动态构建转换后的列将是最佳的。

1 个答案:

答案 0 :(得分:2)

使用Conditional Aggregate将行转置为列

select Parent,
max(case when Child='Color' then Value End) 'Color',
max(case when Child='Height' then Value End) 'Height',
max(case when Child='Width' then Value End) 'Width',
max(case when Child='Length' then Value End) 'Length'
from yourtable
group by Parent