科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何用oracle正则取出格式化的数据

如何用oracle正则取出格式化的数据

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

如何用oracle正则取出格式化的数据?

作者:csdn 来源:csdn 2009年12月22日

关键字: ORACLE 问答

  • 评论
  • 分享微博
  • 分享邮件

如何用oracle正则取出格式化的数据?

我的数据结构如下:
0-大分类编号-二分类编号-三分类编号:大分类名-二分类名-三分类名
例如:
0-103-1508:时尚家电-电器附件
0-320-1414-1474:厨卫清洁-一次性用品-垃圾袋1
0-320-1414-1469-1471:厨卫清洁-一次性用品-保鲜膜1-保鲜袋1

现在,我要取出二分类名(例如第一条取出:家电附件,第二条取出:一次性用品,第三条取出:一次性用品),用oracle正则该怎么写比较简洁?

 

with tt as(
  select '0-103-1508:时尚家电-电器附件' a from dual
  union all select '0-320-1414-1474:厨卫清洁-一次性用品-垃圾袋1' from dual
  union all select '0-320-1414-1469-1471:厨卫清洁-一次性用品-保鲜膜1-保鲜袋1' from dual
  )


select ltrim(regexp_substr(a,'(-)(\w+)',instr(a,':')),'-') from tt

或者
select regexp_replace(substr(a,instr(a,'-',instr(a,':'),1)+1),'-[[:graph:]]*') from tt

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章