首页数据库mysql怎么列转行 mysql的列转行

mysql怎么列转行 mysql的列转行

时间2023-04-14 08:54:02发布访客分类数据库浏览343
导读:mysql列转行(逗号分隔) mysql查询含逗号的数据,将逗号拆分为多行展示: 原始数据如下: 现在因为新的需求,需要将这些数据转化为如下形式: 假设我们需要处理的表结构为: 使用如下sql语句即可实现需求: 查询的主要思路为,原表与一个...

mysql列转行(逗号分隔)

mysql查询含逗号的数据,将逗号拆分为多行展示:

原始数据如下:

现在因为新的需求,需要将这些数据转化为如下形式:

假设我们需要处理的表结构为:

使用如下sql语句即可实现需求:

查询的主要思路为,原表与一个包含连续自增长字段的表进行join,得到字符串分隔后的索引值,其中 length( a.name ) - length( REPLACE ( a.name, ',', '' ) ) + 1 语句获得字符串逗号分隔之后得到的数据长度,两表关联之后,会得到相应行数的数据。比如,

在join之后会得到:

之后对查询中的结果,使用substring_index方法进行截取,然后得到我们自己想要的数据。

MySql列转行的技巧

列转行:利用max(case when then)

`max``---聚合函数 取最大值`

`(`case course when '语文' then score else 0 end ) ---判断`

` as 语文``---别名作为列名`

mysql 列转行

select typeId,value1 from 表

union

select typeId,value2 from 表

union

select typeId,value3 from 表

union

select typeId,value4 from 表

........

union

select typeId,value10 from 表

注意,以上共19行(10行select、9行union)是一个语句,中间没有分号,这个语句的结果就是你想要的结果。

mysql中列转行,并多个字段转到一行中的一个字段上,中间用逗号分开

select ID,group_concat(NAME) as NAME from table group by ID;

select ID,group_concat(NAME SEPARATOR '; ') as NAME from a group by ID;

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: mysql怎么列转行 mysql的列转行
本文地址: https://pptw.com/jishu/2978.html
折叠wordpress 折叠屏手机 wordpress转账 wordpress付款

游客 回复需填写必要信息