mysql行转列,单列转多行
行转列
使用CASE语句:
SELECT SUM(CASE USER_NAME='A' THEN KILLS END) AS 'A',
SUM(CASE USERNAME='B' THEN KILL END) AS 'B',
SUM(CASE USERNAME='C' THEN KILL END) AS 'C'
FROM A INNER JOIN B ON A.NAME=B.USERNAME; 通过CASE给满足WHEN语句的数据返回SUM聚合函数要统计的数据,再将SUM进行重命名。推荐。
一般形式
SELECT NAME AS '姓名',
SUM(CASE SUBJECT WHEN '数学' THEN MARK ELSE NULL END) AS '数学',
SUM(CASE SUBJECT WHEN '英语' THEN MARK ELSE NULL END) AS '英语',
SUM(CASE SUBJECT WHEN '语文' THEN MARK ELSE NULL END) AS '语文'
FROM SUBJECT
GROUP BY NAME; CASE语句中放原来表中要进行转换的字段(如学科),对其进行分类(如数学、英语、语文)。
注意:要用聚合函数,最后要GROUP BY。
单列转多行


mysql行转列,单列转多行的更多相关文章
- sqlserver 行转列、字符串行转列、自动生产行转列脚本
		行转列,老生常谈的问题.这里总结一下网上的方法. 1.生成测试数据: CREATE TABLE human( name ), --姓名 norm ), --指标 score INT , --分数 gr ... 
- Mysql group_concat函数列转行,与行转列
		例一: SELECT num from user 1.使用group_concat函数得到列转行 select group_concat(num) from user 2.使用SUBSTRING_IN ... 
- Oracle 行转列(不固定行数的行转列,动态)(转)
		http://bbs.csdn.net/topics/330039676 SQLSERVER :行列转换例子: http://www.cnblogs.com/gaizai/p/3753296.htm ... 
- mysql动态行转列
		测试数据 DROP TABLE IF EXISTS `score`; CREATE TABLE `score` ( `id` ) NOT NULL AUTO_INCREMENT, `class` ) ... 
- SQL行转列和列转行
		行列互转,是一个经常遇到的需求.实现的方法,有case when方式和2005之后的内置pivot和unpivot方法来实现. 在读了技术内幕那一节后,虽说这些解决方案早就用过了,却没有系统性的认识和 ... 
- sql行转列和列转行(转)
		行列互转,是一个经常遇到的需求.实现的方法,有case when方式和2005之后的内置pivot和unpivot方法来实现. 在读了技术内幕那一节后,虽说这些解决方案早就用过了,却没有系统性的认识和 ... 
- C#中DataTable行转列示例
		将下面表(1)格式的数据转换为表(2)格式的数据.很明显,这是一个行转列的要求,本想在数据库中行转列,因为在数据库中行转列是比较简单的,方法可以参考本站SQLServer中(行列转换)行转列及列转行且 ... 
- SqlServer  行转列,列转行   以及PIVOT函数快速实现行转列,UNPIVOT实现列转行
		一 .列转行 创建所需的数据 CREATE TABLE [StudentScores]( [UserName] NVARCHAR(20), --学生姓名 [Subject] NVARCHAR(3 ... 
- SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行
		我们在写Sql语句的时候没经常会遇到将查询结果行转列,列转行的需求,拼接sql字符串,然后使用sp_executesql执行sql字符串是比较常规的一种做法.但是这样做实现起来非常复杂,而在SqlSe ... 
- c# 行转列
		将下面表(1)格式的数据转换为表(2)格式的数据.很明显,这是一个行转列的要求,本想在数据库中行转列,因为在数据库中行转列是比较简单的,方法可以参考本站SQLServer中(行列转换)行转列及列转行且 ... 
随机推荐
- 【bzoj4822/bzoj1935】[Cqoi2017]老C的任务/[Shoi2007]Tree 园丁的烦恼  树状数组
			原文地址:http://www.cnblogs.com/GXZlegend/p/6825530.html bzoj4822 题目描述 老 C 是个程序员. 最近老 C 从老板那里接到了一个任务 ... 
- 个人收藏的移动端网页布局rem解决方案
			写移动端项目时,总是会纠结是用css3 media query 还是用rem.移动端框架挺多,但是因为项目都比较小,不考虑使用. 无意在网上找到一个移动端rem布局的解决方案,经个人实践,目前未出现什 ... 
- Mysql事务隔离级
			转自:http://xm-king.iteye.com/blog/770721 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的.低级别的隔离级一般 ... 
- SoundPool 播放提示音
			SoundPool 一个声音播放的辅助类,从名字可以看出,它具有 “池”的能力,它先加载声音文件到内存,以支持多次播放声音文件. 特点 SoundPool适合 短小的 声音文件 SoundPool适合 ... 
- Java中的抽象和封装
			一.面向对象和面向过程的区别 面向对象: 核心:封装了属性和方法的类,以数据为中心,实现了类级别的代码重用 面向对象因为采用了类,所以具有继承和多态特性,可以进一步重用代码和简化编程 面向过程: 核心 ... 
- [LeetCode] Search for a Range 二分搜索
			Given a sorted array of integers, find the starting and ending position of a given target value. You ... 
- gdb 记录临时变量
			gdb ./pgm set logging file log set logging on ... set logging off gdb ./pgm | tee -a log ... file a. ... 
- [MySQL] 参数: innodb_flush_log_at_trx_commit和sync_binlog
			MySQL参数: innodb_flush_log_at_trx_commit和sync_binlog innodb_flush_log_at_trx_commit和sync_binlog是MySQL ... 
- c/c++中const用法总结
			1.修饰常量时: const int temp1; //temp1为常量,不可变 int const temp2; //temp2为常量,不可变 2.修饰指针时: 主要看const在*的前后,在前 ... 
- 【linux高级程序设计】(第十三章)Linux Socket网络编程基础 2
			BSD Socket网络编程API 创建socket对象 int socket (int __domain, int __type, int __protocol) :成功返回socket文件描述符, ... 
