1.先建张测试的表吧
if object_id('tb')is not null drop table tb
go
create table tb(name varchar(10),kecheng varchar(10),fenshu int)
insert into tb values('张三','语文',74)
insert into tb values('张三','数学',83)
insert into tb values('张三','物理',93)
insert into tb values('李四','语文',74)
insert into tb values('李四','数学',84)
insert into tb values('李四','物理',94)
insert into tb values('李四','物理',94)
go
select*from tb
go
2.行转列的方法(第一种)
select name as 姓名,
max(case kecheng when'语文' then fenshu else 0 end)语文,
max(case kecheng when'数学' then fenshu else 0 end)数学,
max(case kecheng when'物理' then fenshu else 0 end)物理
from tb
group by name
3.行转列的方法(第二种)
select name as 姓名,语文,数学,物理 from tb
pivot
(
sum(fenshu) for kecheng in(语文,数学,物理)
) as b