简体   繁体   English

SQL电话号码转换

[英]SQL Phone Number Conversion

I have phone numbers in a SQL database stored in (xxx) xxx-xxxx format. 我在SQL数据库中以(xxx)xxx-xxxx格式存储的电话号码。 is there any way to cast these as xxxxxxxxxx format instead? 有什么办法可以将它们转换为xxxxxxxxxx格式吗?

只需使用REPLACE()函数即可:

SELECT REPLACE(REPLACE(REPLACE(REPLACE('(XXX) XXX-XXXX','(',''),')',''),'-',''),' ','')

Assuming you are using Oracle or MySQL 8+, you could use REGEXP_REPLACE : 假设您使用的是Oracle或MySQL 8+,则可以使用REGEXP_REPLACE

SELECT
    REGEXP_REPLACE('(914) 591-8563', '\((\d{3})\)\s*(\d{3})-(\d{4})', '\1\2\3')
FROM dual;

9145918563

This solution works via regex by capturing the 10 digits, and then generating a replacement of only digits. 此解决方案通过捕获10个数字,然后生成仅替换数字的方式,通过正则表达式工作。 Explore the demo below using either Oracle or MySQL 8+: 使用Oracle或MySQL 8+浏览以下演示:

Demo 演示

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM