MySQL 字符串分割 一列变成多列

avatar 2021年03月11日15:35:47 0 1347 views

一个朋友提了一个问题,怎么把一列根据某个字符分割成多列(可能是0-5列,即最多5列)。

如 

a/b/c/d/e   ==>  a  b c d e

x/y/z          ==>  x  y z

 

并且我跟他确认了,每列的数据值不会相等,即 a b c d e 几个数不会相等

 

我这里造了一下数据,如下图

 

最终效果图

 

 

SQL 代码如下

select 
w.name1,
case when w.name1 != w.name2 then w.name2 else null end as name2,
case when w.name2 != w.name3 then w.name3 else null end as name3,
case when w.name3 != w.name4 then w.name4 else null end as name4,
case when w.name4 != w.name5 then w.name5 else null end as name5
from (
SELECT
	SUBSTRING_INDEX(t.name, '/', 1) AS name1,
	SUBSTRING_INDEX( SUBSTRING_INDEX(t.name, '/', 2) ,'/', -1) AS name2, 
	SUBSTRING_INDEX( SUBSTRING_INDEX(t.name, '/', 3) ,'/', -1) AS name3, 
	SUBSTRING_INDEX( SUBSTRING_INDEX(t.name, '/', 4) ,'/', -1) AS name4, 
	SUBSTRING_INDEX( SUBSTRING_INDEX(t.name, '/', 5) ,'/', -1) AS name5
FROM
	test t
) w
	
	

 

 

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

avatar 登录者:匿名
可以匿名评论或者登录后台评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0