我有以下的列在我的表SQL去掉空格,非数字和第二个字符的字符串从
MobilePhone
----------
+1 647 555 5556
我想用下面的格式来结束。
基本上删除'+'号,国家代码'1'和所有空格。
MobilePhone
----------
6475555556
有人可以请指向正确的方向。
我有以下的列在我的表SQL去掉空格,非数字和第二个字符的字符串从
MobilePhone
----------
+1 647 555 5556
我想用下面的格式来结束。
基本上删除'+'号,国家代码'1'和所有空格。
MobilePhone
----------
6475555556
有人可以请指向正确的方向。
如果他们都是美国的电话号码,你可以尝试:
select RIGHT(REPLACE(MobilePhone,' ',''),10)
From table
感谢LONG,Siyual ......这样做! –
我在一个UPDATE
命令嵌套2个操作。最内层REPLACE
摆脱空间。 RIGHT
只保留10个字符,应该删除国家/地区代码前缀(因为它仅限于美国)。
update tbl set MobilePhone= RIGHT(REPLACE(MobilePhone, ' ', ''),10)
阅读过去的第一空间,删除其他空间:
REPLACE(SUBSTRING(MobilePhone, CHARINDEX(' ', MobilePhone, 1), LEN(MobilePhone)), ' ', '')
这里假设你的格式是严格的,如果它可以是任何国家代码与可选的空间,你需要另一个查找表,因为它们是可变的长度。
这是比我提供的更好的答案。 +1 :) –
select replace(REPLACE(MobilePhone,' ',''), '+','')
From table
所有你需要的是正确和替换功能。无论国家代码: 请尝试运行此操作:
declare @a varchar(30) = '+1 510 999 1234'
declare @b varchar(30) = '+91 98318 12345'
SELECT RIGHT(REPLACE(@a,' ',''),10) --5109991234
SELECT RIGHT(REPLACE(@b,' ',''),10) --9831812345
国家代码是否始终为1个字符? –
['REPLACE()'](https://docs.microsoft.com/en-us/sql/t-sql/functions/replace-transact-sql)function –
尝试了解'SUBSTRING'&'REPLACE'函数在SQL Server中。 –