sql 动态行转列 的例子


--键一张临时表

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

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM