我想知道我是否可以转过来
id part_id, type, value
1 1 'type1' 'aaaa'
2 1 'type2' 'bbbb'
3 1 'type3' 'cccc'
4 2 'type1' 'dddd'
5 2 'type2' 'eeee'
6 2 'type3' 'ffff'
进入这个
part_id, type1value, type2value, type3value
1 aaaa bbbb cccc
2 dddd eeee ffff
除了TSQL之外什么都不用。
我认为" pivot"命令可以完成这项工作,但我似乎无法使其发挥作用......
我需要帮助!
答案 0 :(得分:-1)
以下是您需要的正确PIVOT格式:
set nocount on;
with data as ( select * from ( values
( 1, 1, 'type1', 'aaaa')
,( 2, 1, 'type2', 'bbbb')
,( 3, 1, 'type3', 'cccc')
,( 4, 2, 'type1', 'dddd')
,( 5, 2, 'type2', 'eeee')
,( 6, 2, 'type3', 'ffff')
)data(id,part_id,type,value)
)
select
part_id
,max(coalesce(type1,' ')) as type1
,max(coalesce(type2,' ')) as type2
,max(coalesce(type3,' ')) as type3
from data
pivot (max(value) for type in (type1, type2, type3) ) pvt
group by
part_id
;
根据需要很好地返回以下内容:
part_id type1 type2 type3
----------- ----- ----- -----
1 aaaa bbbb cccc
2 dddd eeee ffff