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

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

当列为字符串数据类型时,使用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)

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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5107712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存