mysql数据横表变成竖表_MySQL中横表和竖表相互转换
一 竖表转横表
1. 首先创建竖表
create table student (
id varchar(32) primary key,
name varchar (50) not null,
subject varchar(50) not null,
result int);
2. 插入数据
insert into student (id, name, subject, result) values ('0001', '小明', '语文', 83);
insert into student (id, name, subject, result) values ('0002', '小明', '数学', 97);
insert into student (id, name, subject, result) values ('0003', '小明', '英语', 93);
insert into student (id, name, subject, result) values ('0004'', '小白', '语文', 93);
insert into student (id, name, subject, result) values ('0005', '小白', '数学', 93);
insert into student (id, name, subject, result) values ('0006', '小白', '英语', 95);
3. 查询数据
select * from student;
4. 想要将数据显示为横表, 即如下形式
废话不多说了, 直接上sql语句:
select name as '姓名',
max(case subject when '语文' then result else 0 end) '语文',
max(case subject when '数学' then result else 0 end) '数学',
max(case subject when '英语' then result else 0 end) '英语'
from student group by name;
二, 横表变竖表
1. 创建横表
create table student1 (
id varchar(32) primary key,
姓名 varchar(50) not null,
语文 int,
数学 int,
物理 int
);
2. 插入数据
insert into student1 (id, 姓名, 语文, 数学, 物理) values ('0001','小张', 93, 84, 99);
insert into student1 (id, 姓名, 语文, 数学, 物理) values ('0002','小马', 86, 92, 90);
3. 查询数据
select * from student1;
4. 将横表数据转换为竖表的形式, 即如下形式:
对应的sql语句:
select*from
(
select 姓名 as Name , '语文' as Subject , 语文 as result from student1
union all
select 姓名 as Name , '数学' as Subject , 数学 as result from student1
union all
select 姓名 as Name , '物理' as Subject , 物理 as result from student1
) t
order by name;
mysql数据横表变成竖表_MySQL中横表和竖表相互转换相关推荐
- mysql 分表后如何扩展_mysql扩展至分库分表
MySQL互联网Oracle企业应用数据结构 . 数据库的复制能解决访问问题,并不能解决大规模的并发写入问题,要解决这个问题就要考虑mysql数据切分了 数据切分,顾名思义,就是数据分散,将一台主机上 ...
- sparksql删除MySQL数据_Databricks 第6篇:Spark SQL 维护数据库和表
Spark SQL 表的命名方式是db_name.table_name,只有数据库名称和数据表名称.如果没有指定db_name而直接引用table_name,实际上是引用default 数据库下的表. ...
- mysql 分表后如何扩展_MySQL横向扩展-分库分表解决方案总结
从业务场景看分库分表 互联网行业中,业务场景通常写少读多的情况居多,在MySQL的使用前期,读性能大多可以通过SQL优化来解决,但随着业务的持续发展,单纯依靠SQL的查询优化会越来越难以达到业务服务要 ...
- mysql 表分区使用场景_MySQL的分区和分表应用场景分析
一.分表的前世今生 MySQL5.0以前版本存在单表行数的性能下降拐点,以经典的MySQL4.17或MySQL3.23为例,那个特定年代的存储引擎主要是ISAM或类ISAM存储引擎和BDB存储引擎,运 ...
- mysql中的文件导入导出表设计_mysql导入导出表结构及表数据及执行sql文件
从数据库导出数据库文件: 1.将数据库mydb导出到e:\MySQL\mydb.sql文件中: 打开开始->运行->输入cmd 进入命令行模式 c:\>MySQLdump -h lo ...
- mysql 表引擎无法更新_Mysql安装archive引擎更新表引擎
1,在mysql命令行中安装Archive引擎 1,查找mysql plugins lib目录,看目录中是否存在Archive的so; mysql > show variables like'p ...
- mysql将权限分为几个层级_MySQL多层级结构-区域表使用树详解
1.1. 前言 前面我们大概介绍了一下树结构表的基本使用.在我们项目中有好几块有用到多层级的概念.下面我们哪大家都比较熟悉的区域表来做演示. 1.2. 表结构和数据 区域表基本结构,可能在你的项目中还 ...
- mysql 子表 关联查询语句_mysql查询语句 和 多表关联查询 以及 子查询
1.查询一张表: select * from 表名: 2.查询指定字段:select 字段1,字段2,字段3-.from 表名: 3.where条件查询:select 字段1,字段2,字段3 from ...
- mysql查询成绩最好的十个学生_mysql中一张学生表,查询出单科成绩前十名学生的所有信息 和总分成绩前十名学生的所有信息 在线等...
匿名用户 1级 2012-03-19 回答 学生表名为:student, 单科成绩的字段为:subject.学生名字为:name 查询单科成绩前十:mysql语句为:select * from stu ...
最新文章
- 像素颜色JavaFX示例--简易图片处理工具
- 服务器安装织梦网站数据库,DedeCMS数据库及服务器空间更换教程
- 区别 和esc 打印指令tsc_Linux 下的这些高效指令,是你快速入门运维的神器
- JQuery系列(8) - JQuery插件开发
- 惊呆了!小姐姐用图解 Python,这也太秀了吧?
- 简单理解CAP-BASE
- 如何轻松将上亿的数据玩弄于股掌之中?
- 计算机网络之物理层:7、物理层设备(中继器、集线器)
- python list清理列表中的空元素或特定元素
- xp 与 windows 7 共享收藏夹
- ROS保姆级0基础入门教程⭐ |第一章 ROS的概述与环境搭建(4万字教程,建议收藏)
- ubuntu 强制关闭某个程序
- python爬虫微信公众号视频
- grep命令,sed命令和awk命令
- matplotlib画箱线图,添加非参数检验-秩和检验的结果
- 单位内网视频会议怎么开
- 如何配置Web服务器?web服务器配置方法步骤
- python坦克大战
- Vue中 引入使用 vue-json-views
- 动目标检测算法——高斯混合背景建模
热门文章
- 【CEOI2017】Building Bridges【任意坐标斜率优化】【李超线段树】
- 【模板】差分约束算法
- Matlab快速入门
- AT2365-[AGC012E]Camel and Oases【状压dp】
- P4700-[CEOI2011]Traffic【tarjan,dp】
- P5782-[POI2001]和平委员会【2-SAT】
- 牛客练习赛71E-神奇的迷宫【点分治,NTT】
- ssl1203-书的复制【dp】
- 【主席树】可持久化数组(金牌导航 可持久化数据结构-3)
- Sentinel(六)之集群流控