MYSQL 多行转多列
mysql 行变列(多行变成一行/多行合并成一行/多行合并成多列/合并行),我觉得这都是一个意思
数据库结构如图:
而我想让同一个人的不同成绩变成此人在这一行不同列上显示出来,此时分为2中展现:
第一种展现如图----【多行变一列】(合并后的数据在同一列上):
sql如下:
select name ,group_concat(sore Separator ';') as score from stu group by name
第二种展现如图----【多行变多列】(合并后的数据在不同列上):
sql如下:
SELECT name ,
MAX(CASE type WHEN '数学' THEN score ELSE 0 END ) math,
MAX(CASE type WHEN '英语' THEN score ELSE 0 END ) English ,
MAX(CASE type WHEN '语文' THEN score ELSE 0 END ) Chinese
FROM stu
GROUP BY name
----------------------------------------------------------------------------------------------------- 可爱的分割线 ----------------------------------------------------------------------------------------------------
当然,在第一种情况中(显示在一列),也有些其他的类似形式:
形式一:
sql如下:
select name ,group_concat(type,'分数为:',score Separator '; ') as score from stu group by name
呵呵,当然 如果你很熟悉group_concat和concat的用法,你也做出如下形式:
其sql如下:
select name ,concat(name ,'的分数为[',group_concat(type,'分数为:',score Separator '; '),']') as score from stu group by name 原文
http://m.blog.csdn.net/article/details?id=50231435
MYSQL 多行转多列的更多相关文章
- mysql 多行合并一列
mysql 多行合并一列 使用的函数为: GROUP_CONCAT(exp) 其中exp 的参数类似如下: (field order by field desc separator ';') ...
- mysql实现行拼接、列拼接
举例:有t_person表如下: 一.mysql行拼接: 拼接某一行: 无分隔符:select CONCAT(id,idcard,`status`,content) from t_perso ...
- 关于MySQL的行转列的简单应用(二)---group函数
MySQL的行转列.列转行.连接字符串 concat.concat_ws.group_concat函数用法使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一 ...
- mysql之行转列与列转行
mysql之行转列与列转行是数据查询的常见操作,以更好的来展示数据,下面就详细说说怎么实现. 行转列 行转列的话,就是将一条一条的行数据记录转换为一条列数据展示,一般来说是根据某一列来做汇总数据的操作 ...
- 关于MySQL的行转列的简单应用
sql 脚本 -- 创建表 学生表 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHA ...
- mysql命令行参数(转)
MySQL命令行参数 Usage: mysql [OPTIONS] [database] //命令方式 -?, --help //显示帮助信息并退出 -I, --help //显示帮助信息并退出 ...
- mysql 命令行参数
MySQL命令行参数 Usage: mysql [OPTIONS] [database] //命令方式 例如: mysql -h${HOSTNAME} -P${PORT} -u${USERNAM ...
- [MySQL]命令行工具和基本操作
[MySQL]命令行工具和基本操作 一 MySQL命令行工具 (查看帮助 ---help,或 -?) 1)MySQL MySQL是一个简单的SQL外壳(有GNU readline功能).它支持交互式 ...
- MySQL InnoDB 行记录格式(ROW_FORMAT)
MySQL InnoDB 行记录格式(ROW_FORMAT) 一.行记录格式的分类和介绍 在早期的InnoDB版本中,由于文件格式只有一种,因此不需要为此文件格式命名.随着InnoDB引擎的发展,开发 ...
随机推荐
- 【Maven】解决缺少Jar包问题
解决办法:进入项目的根目录(即 pom.xml文件所在的目录)执行:mvn dependency:copy-dependencies完成后进入eclipse,发现项目不再报错前提条件:1,安装了mav ...
- sharepoint OWA问题解决
请检查DNS 检查域名解析 cmd----nslookup---输入IP或者域名(计算机名)可以看到
- mysql 外键 级联
主表 -- 创建用户信息表 create table userinfo ( userid int primary key not null auto_increment COMMENT '主键', u ...
- 根据字体计算CGRect
UILabel *label = [[UILabel alloc]init]; label.numberOfLines = ;//多行显示 label.backgroundColor = [UICol ...
- CSS3选择器介绍
1.css3属性选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- android init进程分析 ueventd
转自:http://blog.csdn.net/freshui/article/details/2132299 (懒人最近想起我还有csdn好久没打理了,这个Android init躺在我的草稿箱中快 ...
- 【转载】PyQt QSetting保存设置
转载地址: http://blog.sina.com.cn/s/blog_4b5039210100h3zb.html 用户对应用程序经常有这样的要求:要求它能记住它的settings,比如窗口大小,位 ...
- linux服务器做网关
首先创建两张路由表,只需要添加到相应的文件中即可,Linux一共支持255个路由表,rt_tables文件中默认已经存在了三张路由表,分别是: 255 local 254 main ...
- C#对象序列化与反序列化
C#对象序列化与反序列化(转载自:http://www.cnblogs.com/LiZhiW/p/3622365.html) 1. 对象序列化的介绍.......................... ...
- Daily Scrum Meeting ——SecondDay
一.Daily Scrum Meeting照片 二.Burndown Chart 燃尽图是的粒度较大,今天并没完成具体的issues 三.项目进展 1.完成侧滑框,测试功能中 放张图 2.M层,编写参 ...