博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL中横表和竖表相互转换
阅读量:5087 次
发布时间:2019-06-13

本文共 1585 字,大约阅读时间需要 5 分钟。

一  竖表转横表

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;

 

转载于:https://www.cnblogs.com/rodge-run/p/7159483.html

你可能感兴趣的文章
Linux查看CPU《型号..》《内存..》《硬盘..》《系统..》
查看>>
github使用个人总结
查看>>
异常处理
查看>>
Django(四) ORM 外键操作及初识Ajax
查看>>
局部最优解与全局最优解(转)
查看>>
EM算法与混合高斯模型
查看>>
Leetcode 86.分隔链表
查看>>
学习前端开发的第三周
查看>>
bzoj4390: [Usaco2015 dec]Max Flow
查看>>
安装前端脚手架
查看>>
在Oracle 里创建带参数的视图
查看>>
Resharp常用设置收集整理
查看>>
NDK以及C语言基础语法(二)
查看>>
android中与Adapter相关的控件----Spinner&AutoCompleteTextView
查看>>
c实验4
查看>>
解决“Kali Linux终端打不开”
查看>>
经验教训
查看>>
VS中Ctrl+F5(开始执行不调试)一闪而过问题
查看>>
js构造造函数
查看>>
iOS9的那些坑 — — WeiboSDK registerApp启动就崩溃
查看>>