微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则 - 提取子串

11g版本:

 
 
  1. WITHtAS
  2. (
  3. SELECT'((:1*:1)+:2)/:10'col
  4. FROMdual
  5. UNIONALL
  6. SELECT'((:3*:0)+:323)/:1213lse12lj'FROMdual
  7. )
  8. SELECTcol,
  9. regexp_substr(col,
  10. '[0-9]+',
  11. 1,
  12. LEVEL)ASdd,
  13. LEVELASposition
  14. FROMt
  15. CONNECTBYLEVEL<=regexp_count(col,
  16. '[0-9]+')AND
  17. PRIORdbms_random.VALUEISNOTNULLAND
  18. PRIORcol=col
  19. ORDERSIBLINGSBYcol;

10g版本:

 
 
  1. WITHtAS
  2. (
  3. SELECT'((:1*:1)+:2)/:10'col
  4. FROMdual
  5. UNIONALL
  6. SELECT'((:3*:0)+:323)/:1213lse12lj'FROMdual
  7. )
  8. SELECTcol,
  9. LEVELASposition
  10. FROMt
  11. CONNECTBYLEVEL<=(length(regexp_replace(col,
  12. '[0-9]+',
  13. '~~~'))-
  14. length(REPLACE(regexp_replace(col,
  15. '[0-9]+',
  16. '~~~'),
  17. '~~~')))/3AND
  18. PRIORdbms_random.VALUEISNOTNULLAND
  19. PRIORcol=col
  20. ORDERSIBLINGSBYcol;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐