MySQL—行转列

一、行转列

1、SqlServer和Orcle中可以使用pivot行转列函数快速实现,而MySQL中没有

pivot:

SELECT *
FROM student
PIVOT (SUM(score) FOR subject IN (语文, 数学, 英语)
)

2、MySQL实现行转列

SELECT name,MAX(CASEWHEN subject='语文'THEN scoreELSE 0END) AS "语文",MAX(CASEWHEN subject='数学'THEN scoreELSE 0END) AS "数学",MAX(CASEWHEN subject='英语'THEN scoreELSE 0END) AS "英语"
FROM student
GROUP BY name

二、列转行

unpivot
1、其他转换

SELECT *
FROM student1
UNPIVOT (score FOR subject IN ("语文","数学","英语")
)

2、MySQL转换

SELECTNAME,'语文' AS subject ,MAX("语文") AS score
FROM student1 GROUP BY NAME
UNION
SELECTNAME,'数学' AS subject ,MAX("数学") AS score
FROM student1 GROUP BY NAME
UNION
SELECTNAME,'英语' AS subject ,MAX("英语") AS score
FROM student1 GROUP BY NAME

MySQL---行转列相关推荐

  1. mysql行转列和列转行_mysql 行转列和列转行实例详解

    mysql行转列.列转行 语句不难,不做多余解释了,看语句时,从内往外一句一句剖析 行转列 有如图所示的表,现在希望查询的结果将行转成列 建表语句如下: create table `test_tb_g ...

  2. mysql行转列sql函数_sql动态行转列的两种方法

    第一种方法: 代码如下: select *from ( select Url,case  when  Month=01 then  '1月' when  Month=02 then '2月' when ...

  3. 5分钟搞懂MySQL - 行转列

    小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL专栏目录 | 点击这里 MySQL行转列,对经常处理数据的同学们来说,一定是不陌生的,甚至是印象深刻,因为它大概率困扰过你,让你为之一愣~ ...

  4. mysql中将列动态转换为行,mysql 行转列 MySQL数据库动态行转列

    想把mysql一个表的行转成列,图1是原表,想实现图2的样式SELECT MAX(CAS就是一个动态的行列转换 CREATE TABLE `c_wssb_zz` ( `aa011` varchar(1 ...

  5. mysql 行转列分级输出_MySQL如何实现行转列分级输出?_MySQL

    概述 好久没写SQL语句,今天看到问答中的一个问题,拿来研究一下. 问题链接:关于Mysql 的分级输出问题 情景简介 学校里面记录成绩,每个人的选课不一样,而且以后会添加课程,所以不需要把所有课程当 ...

  6. mysql 行转列查询优化_行转列及列转行查询

    开发过程中常遇到行转列或是列转行的问题,即需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示. 一.行转列:将原来同一列下多行的不同内容作为多个字段, ...

  7. MySQL行转列函数

    原文链接: http://www.360doc.com/content/18/0525/20/14808334_757019563.shtml 概述 好久没写SQL语句,今天看到问答中的一个问题,拿来 ...

  8. mysql行转列transform_MySQL学习之行列转换案例

    前言 Oracle中的pivot/unpivot函数可以很方便的帮助我们实现行列转换,但是MySQL并不支持. 可以在SQL上想办法,比如pivot考虑用聚合函数+case when, unpiovt ...

  9. MySQL行转列完整SQL示例

    -- SQL行转列 create table student_scores(username VARCHAR(10),-- 学生姓名subject varchar(10),-- 科目名称score i ...

  10. MySQL 行转列的方法

    建表 CREATE TABLE `score` (`Id` int(11) NOT NULL AUTO_INCREMENT,`UserName` varchar(50) DEFAULT NULL,`S ...

最新文章

  1. 怎么看懂c语言程序,求讲解一下这个程序,我看了1个小时都没有看懂,
  2. python连接access数据库查询并打印出来_Python连接Access和读取Access数据库的例子
  3. 热度直逼TensorFlow的深度学习框架,我用它画下女朋友最美的脸
  4. Thymeleaf表达式
  5. 神策数据陈世键:融合媒体渠道转型破局策略
  6. c++ overide
  7. 两个指针变量可以相减
  8. 扫地机器人划伤地板_扫地机器人哪个牌子好?会选的才能买到好产品
  9. Android异步加载全解析之引入二级缓存
  10. samba和nfs的自动挂载
  11. oracle切换实例启动,3.1 Oracle体系结构之实例启动与关闭
  12. ERP企业资源管理系统的介绍
  13. C++primer Plus课本代码(第6章)
  14. 如何办理杭州市民卡|非杭户籍人员个人申领流程
  15. birthday中文是什么_ffappybirthday翻译
  16. 用Python选取神股(简单、粗暴)
  17. 2021-10-19 nlp_1 nltk的基本应用
  18. 轮播图的两种方法及自动轮播
  19. 全球及中国弹性运动胶带行业发展展望及投资趋势预测报告2022-2027年
  20. 如何选择终端桌面管理软件?

热门文章

  1. 基于Pytorch的YoLoV4模型代码及作品欣赏
  2. EAS后台事务的超时时长如何设置?
  3. Linux下NTP服务器配置
  4. 在python中调用java JPype
  5. 能自动生成标注的APP,尝试一下吧
  6. 使用python的sklearn包实现CCA(典型相关分析)
  7. URDF文件导入Simscape后生成slx文件
  8. 哈密顿正则方程和哈密顿-雅克比方程
  9. RetinaFace+ArcFace人脸识别测试
  10. 频谱泄漏(spectral leakage)