MySql列转行的技巧

MySql列转行的技巧,第1张

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

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

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

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

mysql查询含逗号数据,将逗号拆分为多行展示: 原始数据如下: 现在因为新的需求,需要将这些数据转化为如下形式: 假设我们需要处理的表结构为: 使用如下sql语句即可实现需求: 查询的主要思路为,原表与一个包含连续自增长字段的表进行join,得到字符串分隔后的索引值,其中 length( a.name ) - length( REPLACE ( a.name, ',', '' ) ) + 1 语句获得字符串逗号分隔之后得到的数据长度,两表关联之后,会得到相应行数的数据。比如, 在join之后会得到: 之后对查询中的结果,使用substring_index方法进行截取,然后得到我们自己想要的数据。

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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5905551.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存