当前位置: 代码迷 >> Sql Server >> 这种转置如何写
  详细解决方案

这种转置如何写

热度:52   发布时间:2016-04-27 12:40:20.0
请教大家这种转置怎么写?
客户 字段A 字段B 字段C
A 10 20 30
B 40 50 60
B 70 80 90


客户 字段类型 值
A 字段A 10
A 字段B 20
A 字段C 30
B 字段A 40
B 字段B 50
B 字段C 60
B 字段A 70
B 字段B 80
B 字段C 90

谢谢指点。

------解决方案--------------------
SQL code
select 客户,'字段A' as 字段类型,字段A as 值 from tbunion allselect 客户,'字段B' as 字段类型,字段B as 值 from tbunion allselect 客户,'字段C' as 字段类型,字段C as 值 from tb
------解决方案--------------------
SQL code
declare @T table([客户] varchar(1),[字段A] int,[字段B] int,[字段C] int)insert @Tselect 'A',10,20,30 union allselect 'B',40,50,60 union allselect 'B',70,80,90select [客户],'[字段A]' as 字段类型,[字段A] as 值 from @T union allselect [客户],'[字段B]' as 字段类型,[字段B]  from @T union allselect [客户],'[字段C]' as 字段类型,[字段C]  from @T order by 1,3/*客户   字段类型    值---- ------- -----------A    [字段A]   10A    [字段B]   20A    [字段C]   30B    [字段A]   40B    [字段B]   50B    [字段C]   60B    [字段A]   70B    [字段B]   80B    [字段C]   90*/
  相关解决方案