下面的图片是示例,实际中不止有这三个,可能是多个,而且是不确定的多个项目。 下面实现动态转置, declare @sql varchar(8000) set @sql = 'select name' select @sql = @sql + ',isnull (sum(case subject when '''+subject+''' then grade end),0) as ['+subject+']' from (select distinct subject from test) as a select @sql = @sql+' from test group by name' exec(@sql) 但在打印模板里如何动态列呢?因为不同的检索条件会产生不一样的列,有时多,有时少。
declare @sql varchar(8000) set @sql = 'select name' select @sql = @sql + ',isnull (sum(case subject when '''+subject+''' then grade end),0) as ['+subject+']' from (select distinct subject from test) as a select @sql = @sql+' from test group by name' exec(@sql)