SQL电话号码数据纠错xxx-xxx-xxxx



我有一个sql查询从黑莓企业服务器提取电话号码到sql数据库的资产类型。我遇到的问题是,BES没有对电话号码进行标准化,有时会出现log distance dial code为1,非常随机。但是在资产数据库中,我需要标准的xxx-xxx-xxxx格式。这是我对那个电话号码的选择语句。这将电话号码限制为10个字符,但我还需要推送一个破折号作为xxx-xxx- xxxx

SELECT RIGHT([PhoneNumber], 10) AS PhoneNumber.  

如果在源中破折号是一致的,那么你可以只取RIGHT(PhoneNumber,12):

如果没有,你应该删除破折号,取右边的10,然后添加破折号:

SELECT SUBSTRING(RIGHT(REPLACE(PhoneNumber,'-',''),10),1,3)+'-'
      +SUBSTRING(RIGHT(REPLACE(PhoneNumber,'-',''),10),4,3)+'-'
      +SUBSTRING(RIGHT(REPLACE(PhoneNumber,'-',''),10),7,4)         

演示:SQL Fiddle

语法因数据库而异

相关内容

最新更新