微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

转换数据,在 SQL 中将行拆分为列

如何解决转换数据,在 SQL 中将行拆分为列

你能帮我以下面的格式显示表格输出吗。

表格数据

enter image description here

所需的输出

enter image description here

解决方法

如果您拥有详尽的国家/地区列表,则必须将所有国家/地区列表都包含在查询中,如果列表是动态的,那么这是一个问题,唯一的方法是使用动态 sql。请尝试此操作并告诉我们:

SELECT
  ObjectName,CZ,HQ,RO,BR,SK
FROM (
  SELECT * FROM yourtable
) AS X
PIVOT
(
  SUM(counts)
  FOR CountryName
  IN (
    [CZ],[HQ],[RO],[BR],[SK]
  )
) AS PivotX
,

声明@cols 为 NVARCHAR(MAX), @query AS NVARCHAR(MAX);

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.CountryName) FROM #temptest c FOR XML PATH(''),类型 ).value('.','NVARCHAR(MAX)'),1,'')

set @query = 'SELECT ObjectName,' + @cols + ' from ( 选择对象名称、国家名称、计数 来自#temptest ) X 枢 ( 最大值(计数) 对于 CountryName in (' + @cols + ') ) p '

执行(@query)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。