SQL 分组查询,把纵向显示的结果变成横向显示

/*create table BookLibary([图书馆] varchar(10),     [科目] varchar(10),      [数量] int)
insert into BookLibary
                select     'A',         '语文',         5 
union all select      'B',         '数学',         6 
union all select     'C',         '英语',         3 
union all select     'B',         '语文',         4 
union all select     'A',        '数学',         3 
*/



declare @exec varchar(8000)
set @exec='select [图书馆]'
select @exec=@exec+',max(case when [科目] ='''+ [科目] +''' then   [数量] else '''' end) as '''+[科目]+'''' from BookLibary group by [科目] 
set @exec=@exec+'from BookLibary group by [图书馆]'

print @exec
exec(@exec)

select * from BookLibary
posted @ 2008-06-06 00:13  陆岛工作室  阅读(2053)  评论(0编辑  收藏  举报