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;
与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。
您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!
↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/16005111.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现