我有一个联系人号码字段,将号码存储为国家代码 + ' ' + phonenumber .. 现在我想从电话号码中去除前导零
我尝试使用
UPDATE [dbo].[User]
SET PhoneNumber = REPLACE(LTRIM(REPLACE([PhoneNumber], '0', ' ')), ' ', '0')
但这用“0”替换了中间的空格
有什么建议么?
我有一个联系人号码字段,将号码存储为国家代码 + ' ' + phonenumber .. 现在我想从电话号码中去除前导零
我尝试使用
UPDATE [dbo].[User]
SET PhoneNumber = REPLACE(LTRIM(REPLACE([PhoneNumber], '0', ' ')), ' ', '0')
但这用“0”替换了中间的空格
有什么建议么?
尝试将值转换为int
或numeric
例如:
select '91 004563' as Input, CONVERT(INT, SUBSTRING('91 004563',CHARINDEX(' ','91 004563')+1,100)) as Output
这给出了结果
Input Output
--------- ------
91 004563 4563
试试这个: SUBSTRING(PhoneNumber, PATINDEX('%[^0 ]%', PhoneNumber + ' '), LEN(PhoneNumber))
尝试:
declare @PhoneNumber varchar(max) = '00000000000000000000001200000031'
while substring(@PhoneNumber,1,1)='0'
begin
set @PhoneNumber = SUBSTRING(@PhoneNumber,2,LEN(@PhoneNumber))
end
select @PhoneNumber
处理您的评论:
declare @PhoneNumber varchar(max) = '91 00000000000000000000001200000031'
declare @tempphn varchar(max) = substring(@PhoneNumber,4,len(@PhoneNumber) )
while substring(@tempphn,1,1)='0'
begin
set @tempphn = SUBSTRING(@tempphn,2,LEN(@tempphn))
end
select @tempphn