oracle 按指定字符拆分字符串(split) 202516454编辑

Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注

oracle 按指定字符拆分字符串(split)

Created by Marydon on 2022-03-14 17:56

1.情景展示

在oracle当中,如何拆分以逗号隔开的字符串?(将字符串按指定字符拆分成多行数据)

比如:411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681。

2.具体分析

oracle当中没有专门的字符串拆分函数;

但是,我们可以通过REGEXP_SUBSTR()和CONNECT BY LEVEL来实现。

如果,需要自定义创建split函数的话,见文末推荐。

3.解决方案

语法:

SELECT REGEXP_SUBSTR(string,
'[^特定字符]+',
1,
LEVEL,
'i') as 分割后结果
FROM DUAL
CONNECT BY LEVEL <= 特定字符在字符串当中出现的次数 + 1;

进一步优化

SELECT REGEXP_SUBSTR(string,
'[^特定字符]+',
1,
LEVEL,
'i') as 起个别名
FROM DUAL
CONNECT BY LEVEL <= LENGTHB(TRANSLATE(string, '特定字符' || string, '特定字符')) + 1;

查看代码
SELECT REGEXP_SUBSTR('411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681',
'[^,]+',
1,
LEVEL,
'i') as 分割后结果
FROM DUAL
CONNECT BY LEVEL <= LENGTHB(TRANSLATE('411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681', ',' || '411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681', ',')) + 1;
SELECT REGEXP_SUBSTR('411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681',
'[^,]+',
1,
LEVEL,
'i') as 分割后结果
FROM DUAL
CONNECT BY LEVEL <= LENGTHB(TRANSLATE('411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681',
',' ||
'411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681',
',')) + 1;

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。

您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!

↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓

posted @   Marydon  阅读(16454)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
sorry,本博客所有代码禁止复制,原创代码需扫码支付方可获取!
关闭

1、先加好友再付费,点我加好友;

2、代码不能满足你的需求?加好友付费定制你的专属代码!

3、付费标准及方式,点我查看详情。