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

时间:2018-11-14 07:48:31

标签: regex oracle oracle11g regexp-replace regexp-substr

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

1 个答案:

答案 0 :(得分:0)

这应该有效:

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

相关问题