在空格后的字符串中删除sql中的前导零

时间:2013-09-23 07:02:35

标签: sql sql-server

我有一个联系号码字段,用于存储号码 countrycode +''+ phonenumber .. 现在我想从电话号码

中删除前导零

我尝试使用

UPDATE [dbo].[User]
SET PhoneNumber = REPLACE(LTRIM(REPLACE([PhoneNumber], '0', ' ')), ' ', '0')

但这会用'0'

替换其间的空格

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

尝试将值转换为intnumeric

例如:

select '91 004563' as Input, CONVERT(INT, SUBSTRING('91 004563',CHARINDEX(' ','91 004563')+1,100)) as Output

这给出了结果

Input       Output
---------   ------
91 004563   4563

答案 1 :(得分:1)

试试这个:SUBSTRING(PhoneNumber, PATINDEX('%[^0 ]%', PhoneNumber + ' '), LEN(PhoneNumber))

答案 2 :(得分:0)

尝试:

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