日期:2014-05-17  浏览次数:20425 次

这种转换怎么写,不带求和项的竖转横。
字段1 字段2 字段3
A 甲 类型1
A 乙 类型2
B 丙 类型1
B 丁 类型2

转换为如下格式:


名称 类型1 类型2
A 甲 乙
B 丙 丁

------解决方案--------------------
;with cte(字段1, 字段2, 字段3) as
(
select 'A','甲','类型1'
union all select 'A','乙','类型2'
union all select 'B','丙','类型1'
union all select 'B','丁','类型2'
)

select 字段1 as 名称,max(case when 字段3='类型1' then 字段2 end) as 类型1
,max(case when 字段3='类型2' then 字段2 end) as 类型2
from cte
group by 字段1

/*
名称 类型1 类型2
A 甲 乙
B 丙 丁
*/