sql 动态行转列 的例子

心不动则不痛 提交于 2020-01-09 17:01:00

--键一张临时表

create table #t
(
    名字 varchar(20),
    课程 varchar(20),
    分数 int  
)
insert into #t values('张三','数学','88')
insert into #t values('张三','语文','99')
insert into #t values('张三','英语','77')
insert into #t values('李四','语文','77')
insert into #t values('李四','数学','88')
insert into #t values('李四','英语','99')
insert into #t values('王五','英语','99')
insert into #t values('李四','化学 ','99')
select * from #t--查询圆表数据
------行转列
declare @sql varchar(8000)
set @sql = 'select 名字 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from #t) as a
set @sql = @sql + ' from #t group by 名字'
exec(@sql)
drop  table #t

----------------------------------------

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!