本文主要是介绍sql行转列2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
sql多字段行转列
创建数据表:
create table tb(姓名 varchar(10),课程 varchar(10),分数 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)
查询:select * from tb
方法一:
select 姓名,
sum(case 课程 when ‘语文’ then 分数 else 0 end)语文,
sum(case 课程 when '数学’then 分数 else 0 end)数学,
sum(case 课程 when '物理’then 分数 else 0 end)物理
from tb
group by 姓名
方法二:
select 姓名,
max(case 课程 when ‘语文’ then 分数 else 0 end)语文,
max(case 课程 when '数学’then 分数 else 0 end)数学,
max(case 课程 when '物理’then 分数 else 0 end)物理
from tb
group by 姓名
方法三:
– 使用pivot
select * from tb pivot(max(分数) for 课程 in (语文,数学,物理))a
方法四:
select * from
(select 姓名,课程,分数 from tb) test pivot(sum(分数) for 课程 in(语文,数学,物理)) pvt
以上四种查询结果均为:
这篇关于sql行转列2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!