美文网首页
MYSQL 行转列,列转行的方法汇总

MYSQL 行转列,列转行的方法汇总

作者: 木有耳朵的驴 | 来源:发表于2017-12-26 16:41 被阅读30次

一.行转列

1.准备数据

DROP TABLE IF EXISTS tb

CREATE TABLE tb (`cname` VARCHAR(10),cource VARCHAR(10),score INT);

INSERT INTO tb VALUES('Nick', '语文',74);

INSERT INTO tb VALUES('Nick', '数学',83);

INSERT INTO tb VALUES('Nick', '物理',93);

INSERT INTO tb VALUES('Rik','语文',74);

INSERT INTO tb VALUES('Rik','数学',84); I

INSERT INTO tb VALUES('Rik','物理',94);



2.方法

    方法一: 利用SUM(IF()) 生成列      规则: sum(if(新列的列名='  可能的情况' , 展示的结果,0) as 新列的列名='  可能的N种情况'

SELECT

cname AS "姓名",

SUM(IF(cource="语文", score, 0)) AS "语文",

SUM(IF(cource="数学", score, 0)) AS "数学",

SUM(IF(cource="物理", score, 0)) AS "物理"

FROM

tb

GROUP BY cname

方法二.利用max(CASE ... WHEN ... THEN .. ELSE END) AS "语文"的方式来实现   

规则  MAX(  case 新列的列名   when        可能的情况  then 展示的结果,    else  )

SELECT

cname AS "姓名",

MAX(CASE cource WHEN "语文" THEN score ELSE 0 END) AS "语文",

MAX(CASE cource WHEN "数学" THEN score ELSE 0 END) AS "数学",

MAX(CASE cource WHEN "物理" THEN score ELSE 0 END) AS "物理"

FROM tb

GROUP BY `cname`

方法三.

SELECT

保留的字段+

列名-->转换的字段,

列名-->转换的值

FROM (

SELECT

所有用到的字段

FROM

)AS a

UNPIVOT (

转换值  for  转换字段名 in(

a,b,c

)

) as b

相关文章

  • sql中列转行unpivot、行转列pivot详细讲解||Mys

    目录:一、sqlserver列转行、行转列详解二、Oracle列转行、行转列详解三、DB2列转行、行转列详解四、M...

  • MYSQL 行转列,列转行的方法汇总

    一.行转列 1.准备数据 DROP TABLE IF EXISTS tbCREATE TABLE tb(`cnam...

  • MySQL行转列,列转行

    参考: MySQL行转列实现和总结 mysql中列转行,并多个字段转到一行中的一个字段上,中间用逗号分开 mysq...

  • mysql行转列,列转行

    一、行转列 即将原本同一列下多行的不同内容作为多个字段,输出对应内容。 建表语句 插入数据 查询数据表中的内容(即...

  • mysql开发技巧笔记

    行转列 结果 使用 SUM 进行 行转列 列转行 应用场景 属性拆分 etl数据处理 1. 利用序列表处理列转行的...

  • Hive的几个复杂情况

    行转列与列转行: https://blog.csdn.net/jx_870915876/article/detai...

  • sql行转列,列转行

    行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL ...

  • SQL行列转换

    行转列1.1、case when1.2、内置函数pivot 列转行2.1、unpivot2.2、union实现

  • hive 行转列 列转行

    列转行 数据分析时需要行中的数据拆成多列,则需要用到:1,lateral view2,explode原始表tabl...

  • SQL列转行、行转列

    笔者前不久终于发布了自己的APP《小印记》,希望读者能前往App Store下载《小印记》支持一下笔者,谢谢!? ...

网友评论

      本文标题:MYSQL 行转列,列转行的方法汇总

      本文链接:https://www.haomeiwen.com/subject/dbnmhttx.html