mysql实现行转列功能
实现从图一转行成图二的功能:
图一:

图二:

建表语句:
CREATE TABLE `t_user_score` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键' ,
`cname` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`cource` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`score` int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
;
插入测试数据:
INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小许', '语文', '');
INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小许', '数学', '');
INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小许', '英语', '');
INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小张', '语文', '');
INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小张', '数学', '');
INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小张', '英语', '');
实现sql:
-- 行转列
SELECT cname ,
MAX(CASE cource WHEN '数学' THEN score ELSE 0 END ) 数学,
MAX(CASE cource WHEN '语文' THEN score ELSE 0 END ) 语文,
MAX(CASE cource WHEN '英语' THEN score ELSE 0 END ) 英语
FROM t_user_score
GROUP BY cname;
mysql实现行转列功能的更多相关文章
- sql内置函数pivot强大的行转列功能
原文:sql内置函数pivot强大的行转列功能 语法: PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVO ...
- 关于MySQL的行转列的简单应用(二)---group函数
MySQL的行转列.列转行.连接字符串 concat.concat_ws.group_concat函数用法使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一 ...
- mysql之行转列与列转行
mysql之行转列与列转行是数据查询的常见操作,以更好的来展示数据,下面就详细说说怎么实现. 行转列 行转列的话,就是将一条一条的行数据记录转换为一条列数据展示,一般来说是根据某一列来做汇总数据的操作 ...
- MySQL命令行工具各功能说明(转)
MySQL 服务器端使用工具程序 mysqld - SQL 后台程序(即 MySQL 服务器进程).该程序必须启动运行,才能连接服务器来访问数据库. mysqld_safe - 服务器启动脚本,可以通 ...
- Mysql数据处理/行转列/列转行/分割/拼接/数据复制汇总
mysql数据处理记录(使用的 Workbench) 生成随机数 逗号或分号拼接的字符串分割成多行 多行数据转化成用逗号拼接的字符串 将A表的数据添加到B表 一.生成随机数 生成18位:(19位就加颗 ...
- mysql动态行转列
测试数据 DROP TABLE IF EXISTS `score`; CREATE TABLE `score` ( `id` ) NOT NULL AUTO_INCREMENT, `class` ) ...
- sql强大的行转列功能(内置函数pivot及注意事项)
语法: PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) ) ...
- MySQL数据库行转列
一.数据源如下所示 二.对应SQL语句如下所示 -- 行转列 SELECT t1.`产品名称`, SUM(CASE t1.`日期` WHEN '2019-11-11' THEN t1.`数量` ELS ...
- 关于MySQL的行转列的简单应用
sql 脚本 -- 创建表 学生表 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHA ...
随机推荐
- Zookeeper在linux上的安装
1:进入 cd /usr/local目录下 2:创建zookeeper目录 midir zookeeper 3:将压缩包复制到zookeeper目录下 cp /root/zookeeper/zo ...
- ROS消息vs服务
1.ROS包消息/服务模式与要点 从功能上看,ROS包是信息交互和处理的基本单元.根据信息的交互和处理方式,ROS包有以下两大类: 消息发布者与订阅者 服务器与客户端 对于消息模式的包,信息的提供者主 ...
- python实现AES加密
pip install pycryptodomex 需要安装pycryptodomex模块 aes加密 from Cryptodome.Cipher import AES from binascii ...
- PostgreSQL查询当前时间的时间戳
一.问题 使用PostgreSQL获取当前系统时间戳.众所周知,在MySQL中是这样的: select UNIX_TIMESTAMP(NOW()) 二.解决方案 (1)精确到秒 " (2)精 ...
- 浅析负载均衡的6种算法,Ngnix的5种算法
常见的几种负载均衡算法 1.轮询法 将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载. 2.随机法 通过系统的随机算法,根据后端服务器的 ...
- 【USACO】香甜的黄油
这是一道来自USACO的题,一般歪果仁的题都不是很好做,就比如这题 题目描述: 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1<=N<=500)只奶 ...
- @Async源码探究
1. @Async源码探究 1.1. 上代码 @SpringBootApplication @EnableAsync public class SpringbootLearnApplication { ...
- 恭喜你!看到这6个MES系统选型的大坑,千万要避免!
随着工业4.0概念的出现,智能化生产成为了各大制造业的发展趋势! MES系统可以为企业提供包括制造数据管理.计划排程管理.生产调度管理.库存管理.质量管理.人力资源管理.工作中心/设备管理.工具工装管 ...
- docker的centos7安装与启动相关命令
Docker 的概念 Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容 ...
- TP5.0整合webuploader实现多图片上传功能
在https://github.com/fex-team/webuploader 下载webuploader并解压,解压后放到public里面.其中我把解压缩后的文件夹改名为webuploader,放 ...