我们有时候会有这种需求:
这种与列值相关的展⽰有时候⾮常具有数据的直观性,我将⽤⼀个⼩Demo来实现此类操作。
表结构
create table demo1(
sname varchar(20) not null comment '学员', course varchar(10) not null comment '科⽬', score float not null comment '成绩')
插⼊如下数据:snamecoursescore张三张三张三李四李四李四
语⽂数学英语语⽂数学英语
10090809070100
MySQL提供了条件分⽀语法(类似于if/else、case...)
语法:
1.case key when 条件 then 结果 when 条件 then 结果 …else key(默认为原来的)end2.if(作为列的字段 = '值', 要展⽰的数据字段,另外的值)上代码:
select sname '姓名',
max(if(course = '语⽂', score,0)) '语⽂',
avg(case course when '数学' then score end) '数学',max(if(course = '英语',score,0)) '英语' from demo1 group by sname;
执⾏结果:
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务