oracle正则表达式子串和正则表达式替换

oracle regular expression sub string and regular expression replace

我的 table 中有 Phone_number 列,其中插入了多个数字和字符值(例如(123).254,5674)。我需要比较没有字符串的每个值,并且需要删除重复值。 列值='(245)289.4321,(897)201-7210,(897)2017210,8964253712' 我需要删除重复项并且只需要不同的值。提前感谢您的帮助

这应该有效:

with tmp_tbl as
(select '(245)289.4321,(897)201-7210,(897)2017210,8964253712' phone_numbers  from dual)
select distinct
  regexp_replace((regexp_substr(tmp_tbl.phone_numbers,'[^,]+', 1, level)),'\D','') phone_number
from 
  tmp_tbl
connect by
  regexp_substr(tmp_tbl.phone_numbers,'[^,]+', 1, level) is not null

结果:

PHONE_NUMBER

8964253712

2452894321

8972017210