|
纵转换为横。
有表:test(name char(10),km char(10),cj int)
name km cj
----------------------------------------------
张三 语文 80
张三 数学 86
张三 英语 75
李四 语文 78
李四 数学 85
李四 英语 78
要求以横向格式显示,即:
想变成
姓名 语文 数学 英语
----------------------------
张三 80 86 75
李四 78 85 78
Create table test (name char(10),km char(10),cj int)
go
insert test values('张三','语文',80)
insert test values('张三','数学',86)
insert test values('张三','英语',75)
insert test values('李四','语文',78)
insert test values('李四','数学',85)
insert test values('李四','英语',78)
方法:
declare @sql varchar(8000)
set @sql = 'select name'
select @sql = @sql + ',sum(case km when '''+km+''' then cj end) ['+km+']'
from (select distinct km from test) as a
select @sql = @sql+' from test group by name'
exec(@sql)
请问如何将exec(@sql)的执行的结果写入表中(临时表也可以)
|
|