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

时间:2014-03-20 17:37:16

标签: sql select substring

我有一个SQL查询,用于将电话号码从Blackberry Enterprise Server提取到资产类型的sql数据库。我遇到的问题是BES没有标准化电话号码,有时候日志距离拨号代码为1,非常随机。但在资产数据库中,我需要标准的xxx-xxx-xxxx格式。这是我对该电话号码行的选择声明。这会将电话号码限制为10个字符,但我还需要将短划线设为xxx-xxx- xxxx

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

1 个答案:

答案 0 :(得分:2)

如果信号源中的破折号一致,那么您可以选择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

语法因数据库而异。