不管我们在平时的学习或工作中,难免会遇到行转列的数据操作,比如下面的这个例子:
1、创建测试表
drop table if exists stu_Score ; create table stu_Score(name varchar(10),course varchar(10),score int);2、插入测试数据
-- 插入数据 insert into stu_Score values('Dina','Java',82); insert into stu_Score values('Dina','C#',93); insert into stu_Score values('Dina','Python',90); insert into stu_Score values('Paradox','Java',87); insert into stu_Score values('Paradox','C#',80); insert into stu_Score values('Paradox','Python',95); insert into stu_Score values('Augenstern','Java',93); insert into stu_Score values('Augenstern','C#',86); insert into stu_Score values('Augenstern','Python',90);3、看一下测试的数据
4、行转列的实现(仅供参考)
select * from stu_Score; select name, max(case when course = 'Java' then score else null end)java, max(case when course = 'C#' then score else null end)`C#`, max(case when course = 'Python' then score else null end)python from stu_Score group by name -- name 按Dina、Paradox 、Augenstern 的顺序输出 order by (case when name = 'Dina' then 1 when name = 'Paradox' then 2 when name = 'Augenstern' then 3 end);5、执行代码,可得到预期的结果
希望对你有帮助!!!
若想了解 MySQL 的列转行 实现小示例,可点击 此处
若想了解 MySQL 的行转列 与 列转行 的应用小示例,可点击 此处