源码如下:
Use [BI_NewSys_New]
GO
declare @subject varchar(2000)
declare @name varchar(2000)
select @name=LEFT(name,LEN(name)-1) from (select (SELECT ‘[‘+Name+‘],‘ FROM A_Table FOR XML PATH(‘‘)) as name) as a
DECLARE @colName varchar(500) --声明@colName变量
set @colName=‘‘
SELECT @colName=@colName+‘[‘+COLUMN_NAME+‘],‘ FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME=‘A_Table‘ AND COLUMN_NAME!=‘name‘
select @subject=subString(@colName,1,len(@colName)-1)
exec(
‘
select * from
(
SELECT name,CAST(kemu as FLOAT) as kemu,科目 FROM A_Table as t
unpivot(kemu for 科目 in(‘+@subject+‘)) as b
) as a
pivot(sum(kemu) for name in(‘+@name+‘)) as b
‘
)
select * from A_Table
原文:http://www.cnblogs.com/hbwy/p/4359209.html