建表语句:

CREATE TABLE tb_score1(

id INT(11) NOT NULL auto_increment,

userid VARCHAR(20) NOT NULL COMMENT '用户id',

cn_score DOUBLE COMMENT '语文成绩',

math_score DOUBLE COMMENT '数学成绩',

en_score DOUBLE COMMENT '英语成绩',

po_score DOUBLE COMMENT '政治成绩',

PRIMARY KEY(id)

)ENGINE = INNODB DEFAULT CHARSET = utf8;

INSERT INTO tb_score1(userid,cn_score,math_score,en_score,po_score) VALUES ('001',90,92,80,0);

INSERT INTO tb_score1(userid,cn_score,math_score,en_score,po_score) VALUES ('002',88,90,75.5,0);

INSERT INTO tb_score1(userid,cn_score,math_score,en_score,po_score) VALUES ('003',70,85,90,82);

查询数据表中的内容(即转换前的结果):

先看一下转换后的效果:

本质是将userid的每个科目分数分散成一条记录显示出来。

SELECT userid,'语文' AS course,cn_score AS score FROM tb_score1

UNION ALL

SELECT userid,'数学' AS course,math_score AS score FROM tb_score1

UNION ALL

SELECT userid,'英语' AS course,en_score AS score FROM tb_score1

UNION ALL

SELECT userid,'政治' AS course,po_score AS score FROM tb_score1

ORDER BY userid

这里将每个userid对应的多个科目的成绩查出来,通过UNION ALL将结果集加起来,达到上图的效果。

附:UNION与UNION ALL的区别(摘):

1.对重复结果的处理:UNION会去掉重复记录,UNION ALL不会;

2.对排序的处理:UNION会排序,UNION ALL只是简单地将两个结果集合并;

3.效率方面的区别:因为UNION 会做去重和排序处理,因此效率比UNION ALL慢很多;

mysql 列转行union all_sql:mysql:列转行(转为多个字段)相关推荐

  1. mysql 列转行union all_SQL查询案例:列行转换[列转行, 使用 UNION ALL 处理]

    SQL查询案例:列行转换[列转行, 使用 UNION ALL 处理] 在行列转换的处理之后, 有时候会遇到,要列行装换的 CREATE TABLE TestColRow ( name   VARCHA ...

  2. mysql 列转行union all_SQL查询案例:列行转换[列转行, 使用 UNION ALL 处理] | 学步园...

    SQL查询案例:列行转换[列转行, 使用 UNION ALL 处理] 在行列转换的处理之后, 有时候会遇到,要列行装换的 CREATE TABLE TestColRow ( name   VARCHA ...

  3. 不使用union实现Mysql 列转行

    最近工作上用到了 mysql列转行,网上找了一堆大多数都是行转列的方法,对于列转行这块,仅找到了union这一种方式,偏偏工作环境的数据库版本较低不支持临时表,使用union方式写起来又过于笨重,所以 ...

  4. mysql 列转行union all_mysql的 行转列(7种方法) 和 列转行

    # 一.行转列 # 即将原本同一列下多行的不同内容作为多个字段,输出对应内容. 建表语句 DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_score( i ...

  5. mysql 行转列查询优化_行转列及列转行查询

    开发过程中常遇到行转列或是列转行的问题,即需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示. 一.行转列:将原来同一列下多行的不同内容作为多个字段, ...

  6. mysql列转行统计查询_Mysql 列转行统计查询 、行转列统计查询

    Mysql group_concat函数列转行,与行转列 例一: SELECT num from user 1.使用group_concat函数得到列转行 select group_concat(nu ...

  7. mysql行转列和列转行_Mysql中行转列和列转行

    一.行转列 即将原本同一列下多行的不同内容作为多个字段,输出对应内容. 建表语句 DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_score( id IN ...

  8. matlab 列转行,postgresql 行转列,列转行后加入到一个整体数据

    这里行转列的基本思想就是使用max,因为其他列下面都是NULL,所以可以Max最后就只能得到有值的这行 普通的查询: SELECT icd , case when (ROW_NUMBER() OVER ...

  9. SQL 列转行、行转列 - 使用sqlite演示

    一 列转行 CREATE TABLE test1(ID INT PRIMARY KEY NOT NULL,NAME VARCHAR(50) NOT NULL,语文 INT,数学 INT,英语 INT ...

最新文章

  1. JavaWeb-网站在线用户信息、网站访问量以及管理踢出用户实例
  2. asp.net 播放flash
  3. logo qt添加_linux下如何给qt程序添加图标?
  4. 《JAVA程序设计》第八周学习总结
  5. oh-my-zsh 国内网络快速安装方法 | How to install oh-my-zsh in China
  6. could not change product header data even after switching to change mode
  7. node --- 在node中使用mongoosemongoDB的安装
  8. [收集]Sublime Text 3常用快捷键
  9. 详解用65行javascript代码做Flappy Bird
  10. fresco使用中圆角出现了黑边
  11. python3 robotframework+pycharm框架搭建
  12. java 栈队列区别是什么意思_java栈和队列的区别
  13. 博弈论与逻辑思维(传教士与妻子忠贞的问题)
  14. 【图像几何】基于matlab GUI傅立叶+DCT图像变换【含Matlab源码 844期】
  15. devc调试设置断点后没有反应_基于VSCode的skynet调试器
  16. Android 中Goolgle 相关服务的移植
  17. 苹果手机使用计算机网络,苹果安卓手机使用usb共享网络给win10电脑的操作方法...
  18. Pyecharts基本图:饼图
  19. OpenCv图像处理之图像视频摄像头读取和保存
  20. 【数据结构】二叉树的节点总个数、叶子节点个数、第K层节点个数、二叉树的深度

热门文章

  1. ath9k驱动内的数据发送过程
  2. 吊打面试官!Spring Boot的35道灵魂拷问面试题,看看你能答对多少?
  3. 元旦的庆贺,是每家每户的快乐
  4. java数组从小到大排序
  5. 2.8 高收藏率小红书笔记怎么写?试一试这7类方法吧【玩赚小红书】
  6. Liunx7 DNS服务器正反解析,域名转发
  7. 实训:网站诊断分析(12.10)
  8. springboot 图片映射404问题
  9. [介绍] SymbolSort, 帮你避免或减少代码膨胀 (Code Bloat)
  10. SDN in Action: Practice SDN/OpenFlow with LINC-Switch and OpenDaylight