0

国コード + ' ' + 電話番号として番号を格納する連絡先番号フィールドがあります。電話番号から先頭のゼロを削除したい

使ってみた

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

しかし、これはその間のスペースを「0」に置き換えます

助言がありますか?

4

3 に答える 3

1

int値をまたはに変換してみてくださいnumeric

例えば:

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

これにより結果が得られます

Input       Output
---------   ------
91 004563   4563
于 2013-09-23T07:15:57.160 に答える
1

これを試して: SUBSTRING(PhoneNumber, PATINDEX('%[^0 ]%', PhoneNumber + ' '), LEN(PhoneNumber))

于 2013-09-23T07:18:34.397 に答える
0

Try:

declare @PhoneNumber varchar(max) = '00000000000000000000001200000031'
while substring(@PhoneNumber,1,1)='0' 
begin
    set  @PhoneNumber = SUBSTRING(@PhoneNumber,2,LEN(@PhoneNumber))
end

select @PhoneNumber

Addressing your comment:

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
于 2013-09-23T07:05:47.580 に答える