一  竖表转横表

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中横表和竖表相互转换相关推荐

  1. mysql 分表后如何扩展_mysql扩展至分库分表

    MySQL互联网Oracle企业应用数据结构 . 数据库的复制能解决访问问题,并不能解决大规模的并发写入问题,要解决这个问题就要考虑mysql数据切分了 数据切分,顾名思义,就是数据分散,将一台主机上 ...

  2. sparksql删除MySQL数据_Databricks 第6篇:Spark SQL 维护数据库和表

    Spark SQL 表的命名方式是db_name.table_name,只有数据库名称和数据表名称.如果没有指定db_name而直接引用table_name,实际上是引用default 数据库下的表. ...

  3. mysql 分表后如何扩展_MySQL横向扩展-分库分表解决方案总结

    从业务场景看分库分表 互联网行业中,业务场景通常写少读多的情况居多,在MySQL的使用前期,读性能大多可以通过SQL优化来解决,但随着业务的持续发展,单纯依靠SQL的查询优化会越来越难以达到业务服务要 ...

  4. mysql 表分区使用场景_MySQL的分区和分表应用场景分析

    一.分表的前世今生 MySQL5.0以前版本存在单表行数的性能下降拐点,以经典的MySQL4.17或MySQL3.23为例,那个特定年代的存储引擎主要是ISAM或类ISAM存储引擎和BDB存储引擎,运 ...

  5. mysql中的文件导入导出表设计_mysql导入导出表结构及表数据及执行sql文件

    从数据库导出数据库文件: 1.将数据库mydb导出到e:\MySQL\mydb.sql文件中: 打开开始->运行->输入cmd 进入命令行模式 c:\>MySQLdump -h lo ...

  6. mysql 表引擎无法更新_Mysql安装archive引擎更新表引擎

    1,在mysql命令行中安装Archive引擎 1,查找mysql plugins lib目录,看目录中是否存在Archive的so; mysql > show variables like'p ...

  7. mysql将权限分为几个层级_MySQL多层级结构-区域表使用树详解

    1.1. 前言 前面我们大概介绍了一下树结构表的基本使用.在我们项目中有好几块有用到多层级的概念.下面我们哪大家都比较熟悉的区域表来做演示. 1.2. 表结构和数据 区域表基本结构,可能在你的项目中还 ...

  8. mysql 子表 关联查询语句_mysql查询语句 和 多表关联查询 以及 子查询

    1.查询一张表: select * from 表名: 2.查询指定字段:select 字段1,字段2,字段3-.from 表名: 3.where条件查询:select 字段1,字段2,字段3 from ...

  9. mysql查询成绩最好的十个学生_mysql中一张学生表,查询出单科成绩前十名学生的所有信息 和总分成绩前十名学生的所有信息 在线等...

    匿名用户 1级 2012-03-19 回答 学生表名为:student, 单科成绩的字段为:subject.学生名字为:name 查询单科成绩前十:mysql语句为:select * from stu ...

最新文章

  1. 像素颜色JavaFX示例--简易图片处理工具
  2. 服务器安装织梦网站数据库,DedeCMS数据库及服务器空间更换教程
  3. 区别 和esc 打印指令tsc_Linux 下的这些高效指令,是你快速入门运维的神器
  4. JQuery系列(8) - JQuery插件开发
  5. 惊呆了!小姐姐用图解 Python,这也太秀了吧?
  6. 简单理解CAP-BASE
  7. 如何轻松将上亿的数据玩弄于股掌之中?
  8. 计算机网络之物理层:7、物理层设备(中继器、集线器)
  9. python list清理列表中的空元素或特定元素
  10. xp 与 windows 7 共享收藏夹
  11. ROS保姆级0基础入门教程⭐ |第一章 ROS的概述与环境搭建(4万字教程,建议收藏)
  12. ubuntu 强制关闭某个程序
  13. python爬虫微信公众号视频
  14. grep命令,sed命令和awk命令
  15. matplotlib画箱线图,添加非参数检验-秩和检验的结果
  16. 单位内网视频会议怎么开
  17. 如何配置Web服务器?web服务器配置方法步骤
  18. python坦克大战
  19. Vue中 引入使用 vue-json-views
  20. 动目标检测算法——高斯混合背景建模

热门文章

  1. 【CEOI2017】Building Bridges【任意坐标斜率优化】【李超线段树】
  2. 【模板】差分约束算法
  3. Matlab快速入门
  4. AT2365-[AGC012E]Camel and Oases【状压dp】
  5. P4700-[CEOI2011]Traffic【tarjan,dp】
  6. P5782-[POI2001]和平委员会【2-SAT】
  7. 牛客练习赛71E-神奇的迷宫【点分治,NTT】
  8. ssl1203-书的复制【dp】
  9. 【主席树】可持久化数组(金牌导航 可持久化数据结构-3)
  10. Sentinel(六)之集群流控