字符截取拼接

gz0817 2012-12-18 04:09:18
字符格式:A;BB;CCC;DDDD;EEEEE&1;2;3;4;5
处理返回格式:A^1|BB^2|CCC^3|DDDD^4|EEEEE^5
Oracle 求助。。。。
...全文
131 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小海葵1 2012-12-19
  • 打赏
  • 举报
回复
with test as ( select 'A;BB;CCC;DDDD;EEEEE#1;2;3;4;5' as str from dual ) select trim(both '|' from listagg(str) within group( order by 1)) as sultstr from (select regexp_substr(str1, '\w+', 1, level) || '^' || regexp_substr(str2, '\d+', 1, level) || '|' as str from (select replace(regexp_substr(str, '.+#'), '#', '') as str1, replace(regexp_substr(str, '#.+'), '#', '') as str2 from test) connect by level <= 5) ======================================== 1 A^1|BB^2|CCC^3|DDDD^4|EEEEE^5
linwaterbin 2012-12-18
  • 打赏
  • 举报
回复
先截取,然后存于临时表 再拼接比较好吧 参考函数: substr trim
leonskenedy 2012-12-18
  • 打赏
  • 举报
回复
regexp应该写不过来,弄个function自己解析下吧

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧