我有一个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
语法因数据库而异