本文实例讲述了MySQL横纵表相互转化操作实现方法。分享给大家供大家参考,具体如下:

先创建一个成绩表(纵表)

create table user_score(  name varchar(20),  subjects varchar(20),  score int);insert into user_score(name,subjects,score) values('张三','语文',60);insert into user_score(name,subjects,score) values('张三','数学',70);insert into user_score(name,subjects,score) values('张三','英语',80);insert into user_score(name,subjects,score) values('李四','语文',90);insert into user_score(name,subjects,score) values('李四','数学',100);

再创建一个成绩表(横表)

create table user_score2(  name varchar(20),  yuwen int,  shuxue int,  yingyu int);insert into user_score2(name,yuwen,shuxue,yingyu) values('张三',60,70,80);insert into user_score2(name,yuwen,shuxue,yingyu) values('李四',90,100,0);

纵表转横表

select name,sum(case subjects when '语文' then score else 0 end) as '语文',sum(case subjects when '数学' then score else 0 end) as '数学', sum(case subjects when '英语' then score else 0 end) as '英语'from user_score group by name;

纵表转横表

SELECT  name,'yuwen'  AS   subjects,yuwen  AS  score  FROM  user_score2  UNION  ALL  SELECT  name,'shuxue'  AS   subjects,shuxue  AS  score  FROM  user_score2 UNION  ALL  SELECT  name,'yingyu'  AS   subjects,yingyu  AS  score  FROM  user_score2 ORDER BY name,subjects DESC; 

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》、《MySQL数据库锁相关技巧汇总》及《MySQL常用函数大汇总》

希望本文所述对大家MySQL数据库计有所帮助。

更多相关文章

  1. ES6 变量声明,箭头函数,数组方法,解构赋值,JSON,类与继承,模块化练习
  2. 浅谈Java中Collections.sort对List排序的两种方法
  3. Python list sort方法的具体使用
  4. python list.sort()根据多个关键字排序的方法实现
  5. android上一些方法的区别和用法的注意事项
  6. android实现字体闪烁动画的方法
  7. Android中dispatchDraw分析
  8. Android四大基本组件介绍与生命周期
  9. Android(安卓)MediaPlayer 常用方法介绍

随机推荐

  1. android 中 webview 怎么用 localStorage
  2. javaScript怎么实现双向数据绑定
  3. Dart语言和Android:访问手机的相机
  4. 如何使用Array.filter而不是传统的循环-O
  5. 如何在javascript函数中将URL编码为参数?
  6. 如何使用Angular.js从json文件中使用id获
  7. 在批处理文件中使用JSMin
  8. 前端笔记之JavaScript(十)深入JavaScript节
  9. Dojo:不能在AccordionContainer.js中读取
  10. 可以访问Stackoverflow的自动建议标记系