文档章节

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

Lucky_Me
 Lucky_Me
发布于 2017/07/29 00:55
字数 329
阅读 10
收藏 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
粉丝 6
博文 182
码字总数 59112
作品 0
美国
k3cloud设置同一单据的单据头字段各行合并显示

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

技术小甜
2017/11/08
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
如何设置同一单据的单据头字段各行合并显示吗?

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

51GT
2017/09/01
0
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
第三部分 web前端之HTML

详情参考W3 School 1.HTML是一种标记语言, 使用标记标签来描述网页 2.HTML 标签是由尖括号包围的关键词,通常是成对出现的,比如 和 标签对中的第一个标签是开始标签,第二个标签是结束标签 ...

孙浩j
2017/12/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

spring 容器实现对bean的管理(注解方式解析,源码阅读)

因为最近在研究学习spring boot,所以这里想详细学习回顾了一下spring 容器对bean的一些管理方式和部分源码学习。 首先初始类AnnotationConfigApplicationContext,简单源码查看,支持两个参...

小海bug
12分钟前
0
0
数据结构:二分查找 java

二分查找的前提是有序存储,利用顺序存储和元素排序 /** * 二分查找,查找成功,返回下标记 * @param values * @param begin * @param end * @param key * @param <T> * @ret...

京一
29分钟前
0
0
@SpringBootApplication 注解

@SpringBootApplication注解是一个组合注解,包含以下注解 @Target(ElementType.TYPE) 注解的作用目标 @Retention(RetentionPolicy.RUNTIME) Reteniton的作用是定义被它所注解的注解保留多久,...

java.刘
42分钟前
0
0
sentinel自定义DataSource实战

序 本文主要研究一下如何自定义sentinel的DataSource,这里以jdbc为例。 maven <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-sen......

go4it
58分钟前
1
0
xgboost/gbdt在调参时为什么树的深度很少就能达到很高的精度?

问题: 用xgboost/gbdt在在调参的时候把树的最大深度调成6就有很高的精度了。但是用DecisionTree/RandomForest的时候需要把树的深度调到15或更高。用RandomForest所需要的树的深度和Decisio...

tantexian
59分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部