1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Oracle根据指定符号将记录行拆分

Oracle根据指定符号将记录行拆分

时间:2024-06-20 07:25:01

相关推荐

Oracle根据指定符号将记录行拆分

最近碰上一个需求,需要在数据库中将数据做二次处理。需要根据某个特定的符号,将记录行拆分。

样例如下:分隔符是逗号

需要实现的效果如下:

这和使用unpivot做列转行的做法还不太一样,前者是有多个列, 将列转为行。

本例是只有一列,根据该列的某个固定分隔符,将改列转变为多行,准确说,是根据分隔符做分割行的操作。

基本思路:

使用正则匹配字段中的,,再结合connect by子句处理所有的具有父子级结构的数据行。

connect by子句用于存在父子,祖孙,上下级等层级关系的数据表进行层级查询。详细描述该语法比较繁多,本文不再描述。可自行查阅资料。

sql处理的代码:

select distinct regexp_substr(q.IMAGE_URL, '[^,]+', 1, Level, 'i') IMAGE_URL, TYPEfrom (SELECT IMAGE_URL,TYPEFROM TABLE_1 T WHERE T.TYPE = 'picture') qwhere IMAGE_URL is not nullconnect by Level <= LENGTH(q.IMAGE_URL) -LENGTH(REGEXP_REPLACE(q.IMAGE_URL, ',', '')) + 1order by IMAGE_URL;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。