我必须通过用'+'前缀替换00来更新以00开头的所有电话号码。 我必须只替换第一次出现的00而不是其他任何东西。
phone_number: 000258843300081
ActualResult: +02588433+081
ExpectedResult: +0258843300081
使用了错误的查询:
UPDATE [dbo].[phone]
SET phone_number = REPLACE(phone_number, '00', '+')
WHERE phone_number_numeric LIKE '00%'
答案 0 :(得分:2)
只需使用STUFF()
:
UPDATE [dbo].[phone]
SET phone_number = STUFF(phone_number, 1, 2, '+')
WHERE phone_number_numeric LIKE '00%';
答案 1 :(得分:1)
这是正确的查询。只需转换为更新命令! 另外,我使用了通用方法来解决问题。
SELECT
phone_number
, STUFF(phone_number, CHARINDEX('00', phone_number), LEN('00'), '+') as ExpectedResult
FROM dbo.phone
WHERE phone_number_numeric LIKE '00%'
REPLACE
函数查看整个字符串。使用STUFF
功能将范围缩小到所需的限制。