mysql怎么列转行 mysql的列转行
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