问题描述
所需的输出
解决方法
如果您拥有详尽的国家/地区列表,则必须将所有国家/地区列表都包含在查询中,如果列表是动态的,那么这是一个问题,唯一的方法是使用动态 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)