栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

当列为字符串数据类型时,使用mssql中的“数据透视表”将行转换为列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

当列为字符串数据类型时,使用mssql中的“数据透视表”将行转换为列

您可以使用PIVOT执行此操作。在执行PIVOT时,可以使用以下两种方法之一进行操作:使用“静态数据透视表”(将对行进行编码)或“动态数据透视表”将在运行时创建列列表:

静态数据透视表(请参阅带有演示的SQL Fiddle):

SELECt *FROM(  select empid, wagepre, amount  from t1) xpivot(  sum(amount)  for wagepre in ([basic], [TA], [DA])) p

动态枢轴:

DECLARE @cols AS NVARCHAr(MAX),    @query  AS NVARCHAr(MAX);select @cols = STUFF((SELECT distinct ',' + QUOTENAME(wagepre)        FROM t1  FOR XML PATH(''), TYPE ).value('.', 'NVARCHAr(MAX)')         ,1,1,'')set @query = 'SELECt empid, ' + @cols + ' from   (      select empid, wagepre, amount      from t1 ) x pivot  (     sum(amount)     for wagepre in (' + @cols + ') ) p 'execute(@query)

两者都会为您带来相同的结果



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431749.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号