我在表格中有一个电话号码和邮政编码字段。我试图将这些信息变成一种通用格式,我想摆脱所有额外的垃圾,如破折号,括号,空格和字母。
我想知道是否有办法用替换功能做到这一点,我尝试过类似于如何在REGEXP_LIKE()中运行,并且没有运气,这就是我所拥有的。
select (REPLACE(numbers.PHONE,'[a-zA-Z._-%() ]',''))
from table numbers;
如果没有办法做到这一点那很好,我只是想避免为我想要替换的所有内容制作一大堆替换语句。
答案 0 :(得分:1)
这取决于您的邮政编码和手机中有多少垃圾。例如,您可以使用像这样的替换删除这些字段中的所有非数字字符:
SELECT REGEXP_REPLACE('234N2&.-@3NDJ23842','[^[:digit:]]+') FROM DUAL
然后你可以用这样的替换来格式化结果数字:
SELECT REGEXP_REPLACE('2342323842','([[:digit:]]{3})([[:digit:]]{3})([[:digit:]]{4})','\1 \2 \3') FROM DUAL
我知道这些示例无效,如邮政编码或电话号码,但我认为它们可能对您有所帮助。