`
hdxiong
  • 浏览: 376453 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySqL 列转行

阅读更多
现在有一个用户属性表,它包含以下字段:
主键ID(id),用户属性(key),用户属性值(val),用户ID(owner)

原始数据如下图所示:

需求:要求将上图中同一个用户的属性保存在一条记录中,如下图:

MySqL实现代码:
SELECT owner,
       MAX(CASE WHEN a.key = 'name' THEN a.val ELSE NULL END) as 姓名,
       MAX(CASE WHEN a.key = 'age'  THEN a.val ELSE NULL END) as 年龄
FROM `table1` as a
WHERE owner = 1 group by owner

注意:实现代码中用到了MAX函数,这个很重要,它可以返回多个字符串中ASCII最大的字符串,不过使用中要注意,它可能改变返回的数据类型(String->BLOB)。另外,MAX也可以用GROUP_CONCAT函数代替,它是想同一列的记录连接起来。
  • 大小: 3.2 KB
  • 大小: 2.3 KB
分享到:
评论

相关推荐

    MySql 列转行实例

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

    mysql 列转行的技巧(分享)

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

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

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

    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 列转行,合并字段的方法(必看)

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

    mysql-行转列、列转行

    标题“mysql-行转列、列转行”涉及到的是MySQL中的两种主要转换技巧: 1. **行转列(Pivot)**: 行转列通常用于将多行数据转换为单行的多个列。在MySQL中,没有内置的PIVOT函数,但可以通过使用`CASE`语句配合`...

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

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

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

    示例中的查询使用了嵌套结构,外层查询用于实现列转行,内层查询首先完成了原始数据的预处理,包括筛选满足条件的记录、计算不同部门的唯一rect_id数量(zcount)、以及按部门和年月进行初步分组。 ```sql FROM ...

    MySQL行转列与列转行.pdf

    ### 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...

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

    在MySQL数据库中,行转列和列转行是两种常见的数据转换操作,它们在数据分析和报表展示时尤其有用。下面将详细介绍这两种操作及其实例。 ### 行转列 行转列,即把原本多行的数据转换成单行,通过多个列来表示。这...

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

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

    MySQL NULL 值处理实例详解

    MySQL NULL 值处理 我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS ...

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

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics