我有一个SQL查询,用于将电话号码从Blackberry Enterprise Server提取到资产类型的sql数据库。我遇到的问题是BES没有标准化电话号码,有时候日志距离拨号代码为1,非常随机。但在资产数据库中,我需要标准的xxx-xxx-xxxx
格式。这是我对该电话号码行的选择声明。这会将电话号码限制为10个字符,但我还需要将短划线设为xxx-xxx-
xxxx
SELECT RIGHT([PhoneNumber], 10) AS PhoneNumber.
答案 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
语法因数据库而异。