一个朋友提了一个问题,怎么把一列根据某个字符分割成多列(可能是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
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏