MySQL数据库行转列,列转行
一,MySQL行转列
导入数据表数据
CREATE TABLE `tb_student_grade` (`id` int(0) NOT NULL AUTO_INCREMENT,`s_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`course` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`score` float NULL DEFAULT 0,PRIMARY KEY (`id`) USING BTREE
)
INSERT INTO `tb_student_grade` VALUES (1, '张三', '语文', 85);
INSERT INTO `tb_student_grade` VALUES (2, '张三', '数学', 92);
INSERT INTO `tb_student_grade` VALUES (3, '张三', '英语', 87);
INSERT INTO `tb_student_grade` VALUES (4, '李四', '语文', 96);
INSERT INTO `tb_student_grade` VALUES (5, '李四', '数学', 89);
INSERT INTO `tb_student_grade` VALUES (6, '李四', '英语', 100);
INSERT INTO `tb_student_grade` VALUES (7, '王五', '语文', 91);
INSERT INTO `tb_student_grade` VALUES (8, '王五', '数学', 83);
INSERT INTO `tb_student_grade` VALUES (9, '王五', '英语', 98);
导入之后查询数据列表
对数据进行 行转列 操作,效果图:
行转列 sql语句
SELECTs_name AS '姓名',MAX( CASE course WHEN '语文' THEN score ELSE '' END ) AS '语文',MAX( CASE course WHEN '数学' THEN score ELSE '' END ) AS '数学',MAX( CASE course WHEN '英语' THEN score ELSE '' END ) AS '英语'
FROMtb_student_grade
GROUP BYs_name
二,MySQL 列转行
导入数据表数据
CREATE TABLE `tb_student_grade2` (`id` int(0) NOT NULL AUTO_INCREMENT,`s_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`yuwen` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`shuxue` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`yingyu` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
)
INSERT INTO `tb_student_grade2` VALUES (1, '张三', '85', '92', '87');
INSERT INTO `tb_student_grade2` VALUES (2, '李四', '96', '89', '100');
INSERT INTO `tb_student_grade2` VALUES (3, '王五', '91', '83', '98');
导入后查询数据列表结果集
对数据进行 列转行 操作,效果图
列转行 sql语句
SELECT s_name,'语文' as course,yuwen as score FROM tb_student_grade2 UNION
SELECT s_name,'数学' as course,shuxue as score FROM tb_student_grade2 UNION
SELECT s_name,'英语' as course,yingyu as score FROM tb_student_grade2;
按名字排序,效果图:
sql数据
select a.s_name,a.course,a.score
from(SELECT s_name,'语文' as course,yuwen as score FROM tb_student_grade2 UNION
SELECT s_name,'数学' as course,shuxue as score FROM tb_student_grade2 UNION
SELECT s_name,'英语' as course,yingyu as score FROM tb_student_grade2) a
order by a.s_name;
完毕 !!
MySQL数据库行转列,列转行相关推荐
- 数据库-行存储及列存储区别
参考:https://blog.csdn.net/Xingxinxinxin/article/details/80939277 目录 概述 什么是列存储? 在数据写入上的对比 在数据读取上的对比 优缺 ...
- python读取mysql数据库行数_使用python读取mysql数据库并进行数据的操作
(一)环境的配置 使用python调用mysql数据库要引进一些库. 目前我使用的python版本是python3.6.引进库为pymysql 其他对应的库可以有以下选择: mysqldb,oursq ...
- 将Excel文件导入到MySQL数据库中并实现列转行操作
在处理数据的时候,因为数据源在Excel文件中,本人Excel文件的处理方法不是太会,加上朋友说在Excel中处理这样的数据很麻烦,我就想着干脆导入到数据库中通过代码解决这个问题,感兴趣的可以找我拿数 ...
- quotename mysql_在MySQL中将行记录转换为列
MySQL版本 您已经声明过尝试使用PIVOT,但是MySQL没有PIVOT函数.在MySQL中,您需要将聚合函数与条件逻辑语句(如CASE - WHEN或类似的东西)一起使用.您还需要旋转几个表和几 ...
- mysql 多行转换多列 列不确定_多行转多列,行数和列数不确定
原始需求,有2表如下 SQL> select * from mas; TO TOOLNAME -- ---------- 01 包裹 02 信函 03 挂号信 04 中国速递 05 EMS 06 ...
- mysql将行显示成列_mysql – 在表中将行显示为列
我有一张像下面这样的表 CREATE TABLE Statistics(Stat_Id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Period VARCHAR( ...
- mysql分组区某列最后一条_[MySQL]MySQL数据库如何按某列分组排序后查询每个分组的最后一条数据?...
比如当前有如下的消息表(messages)及示例数据: Id Name Other_Columns ------------------------- 1 A A_data_1 2 A A_data_ ...
- mysql修改表的备注信息_修改mysql 数据库的 表的列的备注信息
1 INFORMATION_SCHEMA提供了访问数据库元数据的方式. 元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等.有些时候用于表述该信息的其他术语包括"数据词典& ...
- oracle数据库行转化成列,ORACLE行转列(行转一列,行转多列)
--listagg(合并多行的值为字符串,只用一列来显示) select status, count(*), listagg(risk_id, ',') within group (order by ...
最新文章
- linux 由一个文件夹复制到另外一个文件夹
- 每日一淘完成1.3亿美元融资,元生资本、DCM领投,SIG联合投资
- Linux下升级python2.4-python2.7
- 【模板/经典题型】FWT
- 2012matlab aerospace,Matlab 2012安装图解
- 【机器视觉】Qt集成Halcon开发环境详解(二)
- 从一个案例看MVC中DataContext和UpdateModel的工作原理(详解UpdateModel/SubmitChanges错误)...
- python画树干_python教你画一棵树
- iOS自动打开闪光灯
- thymeleaf使用总结
- Linux文件与目录常用操作
- mybatis-plus批量insert效率低下怎么办(mysql)
- qpython3 l_QPython 3(com.hipipal.qpy3) - 3.0.0 - 应用 - 酷安网
- 维盟路由器pppoe服务配置(价值80元的帖子)
- R语言使用:符号生成向量数据、使用pie函数可视化饼图、自定义设置饼图色彩为彩虹色
- Jacob 操作 outlook 发邮件 遍历文件夹邮件 移动邮件
- 2023 年 IEEE Fellow 名单公布!唐立新、姬水旺、宗成庆、朱军、宋厚冰等入选
- 入职体检(三甲医院)
- 一文总结 Google I/O 2023
- ubuntu18.04安装Cosmos Scaffold遇到的问题及解决方案
热门文章
- ubuntu 14.04 双节点、双网卡安装和配置openstack
- xshell7提示需更新,但更新后仍无法使用问题
- 上市公司板块其他分类
- Python编程从入门到精通:7-8熟食店练习题
- AutoCAD Electrical 2022—项目特性
- jQuery基础,定位标签,下拉菜单,样式操作,获取值(帐号、密码)
- 超六类网线和六类网线的网口都是一样的吗?
- JMH230-【亲测】首家整理全套【剑侠情缘网络版Ⅱ】剑网2+降龙端+外网+视频搭建+各种配套工具
- 微信共享会议室预约小程序系统设计与实现
- linux sysctl机制,Linux系统控制文件 /etc/sysctl.conf