在sql server中以pivot格式记录

时间:2017-05-17 06:21:40

标签: sql .net pivot

我们正在使用sql server 2008和以下格式的数据。

enter image description here

我想以下面的枢轴格式记录。 enter image description here

请帮忙。

1 个答案:

答案 0 :(得分:1)

select * from  PivotEx
pivot
(
  avg(avg)
  for city in ( [Mumbai] ,[Ahmedabad],[Raikot])
) piv;

在pivot

中动态传递值
Declare @cols nvarchar(max)
Declare @query nvarchar(max)
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(city) 
            FROM PivotEx
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')
set @query = '  select * from PivotEx
                 pivot 
                 (
                     avg(avg)
                    for city in (' + @cols + ')
                 ) p '

execute(@query)