create table t (Title1 varchar(10),Title2 varchar(10),Money int) insert into T select '张山','语文',100 union all select '李四','英语',78 union all select '王五','数学',87 union all select '张山','数学',67 union all select '李四','语文',80 union all select '李四','数学',90 union all select '王五','语文',88declare @sql varchar(4000)set @sql='select title1' select @sql=@sql+','+quotename(Title2)+N'=(case Title2 when '+QUOTENAME(Title2,N'''')+N' then Money end)' from T group by Title2 set @sql=@sql+' from T order by Title1' print @sql exec(@sql)drop table t
@sqlstring 可以用变来量合成 如@tablename='tb_student' @sqlstring ='select * from '+@tablename exec(@sqlstring)@tablename可以变量形式赋值
insert into T select '张山','语文',100
union all select '李四','英语',78
union all select '王五','数学',87
union all select '张山','数学',67
union all select '李四','语文',80
union all select '李四','数学',90
union all select '王五','语文',88declare @sql varchar(4000)set @sql='select title1'
select @sql=@sql+','+quotename(Title2)+N'=(case Title2 when '+QUOTENAME(Title2,N'''')+N' then Money end)'
from T
group by Title2
set @sql=@sql+' from T order by Title1'
print @sql
exec(@sql)drop table t
@sqlstring ='select * from '+@tablename
exec(@sqlstring)@tablename可以变量形式赋值