【mysql列转行 行转列】教程文章相关的互联网学习教程文章

mysql 行转列 列转行【代码】【图】

行转列: 多行转多列 列转行:多列转多行 以下转自:https://www.cnblogs.com/xiaoxi/p/7151433.html 一、行转列 即将原本同一列下多行的不同内容作为多个字段,输出对应内容。 建表语句DROP TABLE IF EXISTS tb_score;CREATE TABLE tb_score(id INT(11) NOT NULL auto_increment,userid VARCHAR(20) NOT NULL COMMENT 用户id,subject VARCHAR(20) COMMENT 科目,score DOUBLE COMMENT 成绩,PRIMARY KEY(id) )ENGINE = INNODB DEFAU...

MySQL查询结果行转列、列转行【图】

一、行转列 有如图所示的表,现在希望查询的结果将行转成列 建表语句如下:CREATE TABLE `TEST_TB_GRADE` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `USER_NAME` varchar(20) DEFAULT NULL, `COURSE` varchar(20) DEFAULT NULL, `SCORE` float DEFAULT 0, PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;insert into TEST_TB_GRADE(USER_NAME, COURSE, SCORE) values ("张三", "数学", 34), ...

MySQL行转列与列转行【代码】【图】

行转列 例如:把图1转换成图2结果展示图1图2CREATE TABLE `TEST_TB_GRADE` (`ID` int(10) NOT NULL AUTO_INCREMENT,`USER_NAME` varchar(20) DEFAULT NULL,`COURSE` varchar(20) DEFAULT NULL,`SCORE` float DEFAULT 0,PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;insert into TEST_TB_GRADE(USER_NAME, COURSE, SCORE) values ("张三", "数学", 34), ("张三", "语文", 58), ("张三", "英语", 58)...

mySQL的行转列

因为MYSQL里边没有 ?PIVOT? ? ? 现记录: ? 原表格: ? mysql语句: SELECT MAX(CASE WHEN corol=红 THEN NUM else 0 END) AS RED,MAX(CASE WHEN corol=橙 THEN NUM else 0 END) AS green1,MAX(CASE WHEN corol=黄 THEN NUM else 0 END) AS green2,MAX(CASE WHEN corol=绿 THEN NUM else 0 END) AS green3FROM ( SELECT SUM(NUM)AS NUM,corol FROM ( SELECT CASE WHEN LoadDegree=0 THEN 1 ELSE 0 END NUM, CASE WHEN Lo...

MySql行转列、列转行【代码】【图】

现mysql中有一张表php_user表,表结构为: 表中数据有: 现在想查询出来不同学生的语数外成绩在一行显示,那么需要用到行转列的用法, 一、行转列 1、使用case...when....then 进行行转列MAX(case when 条件 then 列内容 else 不匹配时显示内容 end) 列名。具体sql如下:2、使用IF() 进行行转列:3、利用SUM(IF()) 生成列,直接生成结果不再利用子查询二、列转行 建表语句:CREATE TABLE tb_score1(id INT(11) NOT NULL auto_incr...