文档章节

24.mysql 实现行转列 及 合并字段显示

Lucky_Me
 Lucky_Me
发布于 2017/07/29 00:55
字数 329
阅读 15
收藏 0

    1. 建表语句

CREATE DATABASE mytest; -- 创建数据库
CREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT ,sname VARCHAR(30),course VARCHAR(80),score INT); --  创建学生表
SHOW TABLES -- 查看数据库中有那些表

DESC student -- 查看student表结构

-- 插入学生成绩数据
INSERT INTO  student  VALUES(NULL,'张三','语文',88);
INSERT INTO student(sname,course,score) VALUES ('张三','数学',99);
INSERT INTO student(sname,course,score) VALUES ('张三','物理',100);

INSERT INTO  student  VALUES(NULL,'李四','语文',97);
INSERT INTO student(sname,course,score) VALUES ('李四','数学',56);
INSERT INTO student(sname,course,score) VALUES ('李四','物理',65);

INSERT INTO  student  VALUES(NULL,'小五','语文',98);
INSERT INTO student(sname,course,score) VALUES ('小五','数学',100);
INSERT INTO student(sname,course,score) VALUES ('小五','物理',100);

2.查询学生成绩
SELECT * FROM student -- 查询学生成绩

 

3. 行转列

3.1 效果

3.2 查询语句

-- 行转列
SELECT sname,
    MAX(CASE course WHEN '语文' THEN score  ELSE 0 END) 语文,
    MAX(CASE course WHEN '数学' THEN score  ELSE 0 END) 数学,
    MAX(CASE course WHEN '物理' THEN score  ELSE 0 END) 物理
    FROM student
    GROUP BY sname;

4. 合并字段显示

4.1 效果

4.2 语句

--  合并字段显示    
SELECT
    `sname`,
    GROUP_CONCAT(course, ":", score) AS 成绩
FROM
    student
GROUP BY
    `sname`

© 著作权归作者所有

共有 人打赏支持
Lucky_Me
粉丝 10
博文 210
码字总数 76634
作品 0
美国
私信 提问
k3cloud设置同一单据的单据头字段各行合并显示

要实现此功能,关键有两点: 1. 如何让系统知道,哪些行是属于同一个单据的? 重载 Initialize 事件, 设置 this.ReportProperty.PrimaryKeyFieldName 属性为单据内码字段名, 例如: this.R...

技术小甜
2017/11/08
0
0
mysql 处理行转列,一种野路子解决方案

在使用 mysql 实现行转列的,要就是静态的,自己手写列,动态的太复杂容易出错,为了行转列写个存储过程好像没必要。 mysql 关键字中有这么几个函数 CONCAT_WS 合并列,可以是多个字段,中间...

小鸟00
2018/09/06
0
0
Oracle 行转列pivot 、列转行unpivot 的Sql语句总结

转自:http://blog.csdn.net/xiaokui_wingfly/article/details/42419207 多行转字符串 这个比较简单,用||或concat函数可以实现 实际上就是拆分字符串的问题,可以使用 substr、instr、regex...

Amui
2016/06/29
373
0
Oracle行转列

如果是oracle 10g以上 一个wm_concat函数就可以解决。 如果是oracle 9i以下就有点麻烦了。 表结构如下: NAME Null Type NSECCODE NOT NULL CHAR(6) CRESEARCHERCODE NOT NULL VARCHAR2(20)...

竹逸风
2016/06/22
9
0
如何设置同一单据的单据头字段各行合并显示吗?

要实现此功能,关键有两点: 1. 如何让系统知道,哪些行是属于同一个单据的? 重载 Initialize 事件, 设置 this.ReportProperty.PrimaryKeyFieldName 属性为单据内码字段名,例如: this.R...

51GT
2017/09/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

弹窗时候禁止页面滚动

1、依靠css 将页面 document.documentElement.style.overflow='hidden'; document.body.style.overflow='hidden';//手机版设置这个。 如果设置了如上,页面的滚动条将会消失,此时鼠标滚轮失......

Jack088
11分钟前
1
0
.NET的数学库NMath实用教程——创建最小二乘法

NMath是一个适用于所有.NET语言,如C#、Visual Basic、F#和.NET的数学库,它包含了.NET平台上的面向对象数字计算的基础类。我们将以连载的形式向大家介绍NMath的实用教程,有任何建议或提示...

ymy_666666
12分钟前
1
0
索尼为收购工作室准备,对抗微软?

对比来说,索尼方面不但没有增加新的工作室,反而在过去两年内关闭了一些工作室。面对微软的步步紧逼,索尼最新的招聘广告暗示将来有可能会收购一些工作室。 在领英上,索尼互动娱乐发布了两...

linuxCool
12分钟前
1
0
公司网站有漏洞被入侵该怎么解决

2019年1月14日消息,thinkphp又被爆出致命漏洞,可以直接远程代码执行,getshell提权写入网站木马到网站根目录,甚至直接提权到服务器,该漏洞影响版本ThinkPHP 5.0、ThinkPHP 5.0.10、Think...

网站安全
24分钟前
2
0
centos7 Nginx+rtmp 搭建流媒体服务器

一. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: yum -y install gcc gcc-c++ 二. PCRE pcre-devel 安装 PCRE(Perl Compatib...

legend3
41分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部