博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

纵向查询显示小示例

Posted on 2007-02-08 15:32  余墨  阅读(200)  评论(0)    收藏  举报
--初始化环境
create table grade(
Code  
int not null,
Name  
varchar(10),
Scores 
int)
--测试数据
insert into grade 
select 1,     'A',     100 
union select 1,     'B',     90
union select 1,     'C',     85
union select 1,     'D',     60
union select 2,     'A',     92
union select 2,     'C',     72
union select 3,     'B',     83

--测试

declare @sql varchar(8000)
set @sql = 'select code '
select @sql = @sql + ', sum(case [Name] when ''' + [Name] + ''' then scores else 0 end) as ['+ [name] + ']'
from grade group by Name
select @sql = @sql + ' from grade group by code'
print @sql
exec (@sql)

--删除
drop table grade