一个朋友提了一个问题,怎么把一列根据某个字符分割成多列(可能是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
	
	

                            
                                



                
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏