首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将行转换为列

如何将行转换为列
EN

Stack Overflow用户
提问于 2016-10-26 07:33:15
回答 1查看 44关注 0票数 1

我有一个包含类型、默认、中断、会议、培训、专家、个人、SpecialProjects和SystemOutage的表格。我需要把它放在饼图中,每个图表都是按类别过滤数据集的。我遇到的问题是默认、中断、CRG、会议、培训、专家、个人、SpecialProjects和SystemOutage在水平布局中,我需要它在垂直布局中。我试过Unpivot,但我不能让它与9个字段一起工作。见下文。

饼图所需的预期结果:

EN

回答 1

Stack Overflow用户

发布于 2016-10-26 07:38:00

也许这就是你要找的

代码语言:javascript
复制
Declare @YourTable table (Type varchar(50),[Default] int,[Break] int,CRG int,Meeting int,Training int,Specialist int,Personal int,SpecialProjects int,SystemOutage int)
Insert into @YourTable values
('Category1',32721,40634,0,1348,9162,0,10212,44549,17090),
('Category2',261997,83567,0,0,552312,0,17859,59345,30138)

Select B.*
 From  (Select Type,XMLData=cast((Select A.* for XML Raw) as xml) From @YourTable A) A
 Cross Apply (
                Select Type   = r.value('@Type','varchar(50)')
                      ,Item   = attr.value('local-name(.)','varchar(100)')
                      ,Value  = attr.value('.','int') 
                 From  XMLData.nodes('/row') as A(r)
                 Cross Apply A.r.nodes('./@*') AS B(attr)
                 Where attr.value('local-name(.)','varchar(100)') not in ('Type')
             ) B
 Where A.Type='Category1'

返回

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40251393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档