`

mysql-行转列、列转行

阅读更多

group_concat(),函数说明

    手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果;

    通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。要返回哪些列,由函数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进行分组。

 

1、行转列

-- 不转sql语句  
SELECT t2.HIERARCHY_ID FROM t_hierarchy t2 WHERE t2.`DEPARTMENT_PID` = (SELECT t1.DEPARTMENT_ID FROM t_staff t1 WHERE t1.id = 3) AND t2.`TYPE`=1030 AND STATUS=1  
  
-- 将行转列以","隔开  
SELECT GROUP_CONCAT(t2.HIERARCHY_ID SEPARATOR ',') FROM t_hierarchy t2 WHERE t2.`DEPARTMENT_PID` = (SELECT t1.DEPARTMENT_ID FROM t_staff t1 WHERE t1.id = 3) AND t2.`TYPE`=1030 AND STATUS=1;  
  
-- 将行转列以","隔开,如果填上其他符号则是以","+符号隔开  
SELECT GROUP_CONCAT(t2.HIERARCHY_ID,'') FROM t_hierarchy t2 WHERE t2.`DEPARTMENT_PID` = (SELECT t1.DEPARTMENT_ID FROM t_staff t1 WHERE t1.id = 3) AND t2.`TYPE`=1030 AND STATUS=1;  
  
-- 将行转列以","隔开  
SELECT GROUP_CONCAT(t2.HIERARCHY_ID) FROM t_hierarchy t2 WHERE t2.`DEPARTMENT_PID` = (SELECT t1.DEPARTMENT_ID FROM t_staff t1 WHERE t1.id = 3) AND t2.`TYPE`=1030 AND STATUS=1;

 

 

(不转输出)



(行转列后输出)

 

2、行转列列传行更具体例子

   1、查看数据

SELECT  * FROM tabName ;

 

   

   2、列转行统计数据

SELECT DATE ,
	MAX(CASE NAME WHEN '小说' THEN Scount ELSE 0 END ) 小说,
	MAX(CASE NAME WHEN '微信' THEN Scount ELSE 0 END ) 微信 
FROM TabName  
GROUP BY DATE
3、行转列
SELECT DATE,GROUP_CONCAT(NAME) FROM tabname GROUP BY DATE

 

4、行转列统计数据

SELECT DATE, GROUP_CONCAT(NAME,'总量:',Scount) AS b_str FROM tabName GROUP BY DATE
   
SELECT DATE,NAME, GROUP_CONCAT(NAME,'总量:',Scount) AS b_str FROM   TabName GROUP BY DATE ,NAME

 

  • 大小: 18.4 KB
  • 大小: 12.9 KB
  • 大小: 17 KB
  • 大小: 20.9 KB
  • 大小: 15.6 KB
分享到:
评论

相关推荐

    mysql行转列(将同一列下的不同内容的几行数据,转换成几列显示)、列转行、行列汇总、合并显示

    MySQL 行转列、列转行、行列汇总、合并显示 MySQL 行转列是一种常用的数据处理操作,用于将同一列下的不同内容的几行数据转换成几列显示。例如,我们有一个成绩表 tb_score,其中包含 userid、subject 和 score 三...

    Mysql 行转列,列转行 SQL语句和示例表结构SQL

    MySQL 提供了两种转换数据布局的方法:行转列(Pivot)和列转行(Unpivot),这在处理复杂的数据汇总和展示时非常有用。本文将深入探讨这两种转换方法,并提供具体的 SQL 语句示例,以及创建示例表结构的 SQL 代码。...

    mysql列转为非固定字段

    -- MySQL 行转列 非固定列 2009-4-25 by kim -- CREATE TABLE `expense_log` ( -- `EXPENSE_ID` INT(10) DEFAULT NULL, -- `USER_ID` VARCHAR(45) DEFAULT NULL, -- `TOTAL` INT(11) DEFAULT NULL -- ) ENGINE=...

    MySQL行转列与列转行.pdf

    ### MySQL行转列与列转行详解 #### 行转列 在数据库处理过程中,有时候我们需要将表中的数据从行的形式转换为列的形式,这样的操作称为“行转列”。这种需求通常出现在对数据进行汇总或者特定展示时。下面通过一个...

    sql动态行转列 存储过程

    在SQL数据库操作中,"行转列"是一种常见的数据转换需求,它将表格中的多行数据转换为单列显示,通常用于数据汇总和分析。在本案例中,我们主要探讨如何使用SQL语句,尤其是存储过程,来实现动态的行转列功能。这在...

    MySql 列转行实例

    总之,MySQL中的列转行操作是一个实用的技巧,尤其在处理多维度数据分析时,能够极大地提升数据的可读性和分析效率。通过存储过程,我们可以根据具体需求灵活地实现这一转换,使得复杂的数据变得更加易管理和解析。

    mysql 行转列和列转行实例详解

    MySQL 提供了一些方法来实现行转列和列转行的操作。本文将通过实例详细讲解这两种转换方式。 首先,我们来看行转列。行转列通常用于将具有多个相关值的同一列数据展示为多列。在 MySQL 中,可以使用 CASE 语句配合...

    MySQL存储过程中使用动态行转列

    本文介绍的实例成功的实现了动态行转列。下面我以一个简单的数据库为例子,说明一下。 数据表结构 这里我用一个比较简单的例子来说明,也是行转列的经典例子,就是学生的成绩 三张表:学生表、课程表、成绩表 学生表...

    MySQL中将一列以逗号分隔的值行转列的实现

    即一列中存储了多个属性值。如下表 pk value 1 ET,AT 2 AT,BT 3 AT,DT 4 DT,CT,AT 一般有这两种常见需求(测试数据见文末) 1.得到所有的不重复的值,如 value AT BT CT DT ET SQL...

    sql 行专列 列转行 普通行列转换

    以下将详细探讨如何在SQL Server中进行行转列和列转行的操作。 1. **行转列(Pivot)** 行转列是将某一列的数据作为新表的列名,而其他列对应的数据则填充到这些新列中。在SQL Server中,可以使用`PIVOT`操作或`...

    mysql 列转行的技巧(分享)

    下面小编就为大家带来一篇mysql 列转行的技巧(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    SQL行转列、列转行的简单实现

    本篇文章将详细探讨MySQL中如何实现行转列和列转行的操作。 **行转列** 行转列主要是将表格中的一组值从行的形式转换为列的形式。这在数据分析时非常有用,比如当我们需要汇总不同科目的成绩时。在MySQL中,可以...

    将SQL数据表的一列转换为一行.docx

    在 MySQL 中,可以使用以下方法来将 SQL 数据表的一列转换为一行。 知识点1:使用存储过程实现数据转换 在 MySQL 中,可以使用存储过程来实现数据转换。存储过程是一种预先编译好的 SQL 语句集合,可以重复使用以...

    mysql列转行以及年月分组实例

    在MySQL数据库中,数据处理时常会遇到将列转换为行的需求,这通常涉及到行转列(Pivot)操作。在给定的实例中,我们看到了如何实现这一操作以及结合年月进行分组统计的方法。这里我们将详细解释这些知识点。 1. **...

    MySQL查询把多列返回结果集拼装成一个字段

    mysql中有种可以通过join相关操作进行表与表之间的方式查询不同结果集,但是在一对多的情况下,关键查询的结果是多条的.例如:班级和学习的关系,我想很直观的看到班级和学生的情况,列表显示出班级的信息和班级的男生...

    mysql 列转行,合并字段的方法(必看)

    列转行:利用max(case when then) max—聚合函数 取最大值 (case course when ‘语文’ then score else 0 end) —判断 as 语文—别名作为列名 SELECT `name`, MAX( CASE WHEN course='\u8bed\u6587' THEN ...

Global site tag (gtag.js) - Google Analytics