赞
踩
数据样式
结果
- with temp as(
- select * from (SELECT AA.* FROM AA )aa
- left join (select rownum as r_rownum from dual connect by rownum <=10) bb
- on (length(aa.AA) - length(replace(aa.AA,',',''))+1) >= bb.r_rownum)
- select data_date,AA,regexp_substr(AA,'[^,]+',1,r_rownum),r_rownum from temp
解释:
通过dual表生成10条数据对AA表进行关联,把数据扩展成按照逗号分隔后的长度,接下来处理逗号分隔后的数据,使用regexp_substr函数进行数据分隔,如果是hive sql 可以结合explode函数和lateral view侧视图 来进行实现
REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
string:需要进行正则处理的字符串
pattern:进行匹配的正则表达式
position:起始位置,从字符串的第几个字符开始正则表达式匹配(默认为1) 注意:字符串最初的位置是1而不是0
occurrence:获取第几个分割出来的组(分割后最初的字符串会按分割的顺序排列成组)
modifier:模式(‘i’不区分大小写进行检索;‘c’区分大小写进行检索。默认为’c’)针对的是正则表达式里字符大小写的匹配
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。