if object_id('tbTest') is not null
drop table tbTest
GO
----创建测试数据
create table tbTest(id int,item varchar(10),class varchar(10),value varchar(10))
insert tbTest
select 1, 'i1', 'c1', 'v1' union all
select 2, 'i2', 'c1', 'v2' union all
select 3, 'i1', 'c2', 'v3' union all
select 4, 'i2', 'c2', 'v4' union all
select 5, 'i3', 'c2', 'v5'
----动态交叉汇总
declare @sql varchar(8000)
set @sql = ''
select @sql = @sql + ',[' + class + '] = max(case class when ''' + class + ''' then value end)'
from tbTest group by class
set @sql = 'select item' + @sql + ' from tbTest group by item'
EXEC(@sql)