Link to home
Start Free TrialLog in
Avatar of Tech_Men
Tech_MenFlag for Israel

asked on

replace charecters in string

hi there ,

i have a table in my db that holds customers details one of them is phone number
for exmple :

050-5554445
0573344223
0542233445
057-2122223

all the numbers that the number 3 character is 7 i need to replace whit 3 only if the first 2 characters are 05
0573344223 after 0533344223
057-2122223 after 053-2122223

thanks ...
Avatar of themrrobert
themrrobert
Flag of United States of America image

Do all of the 7's start after 05? Or do you also want to replace all 7's in the entire number?

If you only want to replace the first 7, you can do this:

UPDATE [dbo].[MyTable] SET Phone = '053'  + SUBSTRING(Phone,3,(LEN(Phone) - 3)) WHERE Phone LIKE '057%';

You can test it without risk by doing this:
SELECT  '053'  + SUBSTRING(Phone,3,(LEN(Phone) - 3)) AS Phone2, Phone FROM [dbo].[MyTable] WHERE Phone LIKE '057%';

(be sure to backup your table before trying anyone's code, that includes now )

If you need to replace all 7's then you just need this:
UPDATE [dbo].[MyTable] SET Phone = REPLACE(Phone,'7','3') WHERE Phone LIKE '05%';
Avatar of Tech_Men

ASKER

hi for the change eccoru there need to be 2 conditios  

1. the third character must to be 7 only if the value is 7 he need to be replace by the value 3 (only the third character)
2. the 2 first characters must be 05

only if this 2 conditions are true he make the change
ASKER CERTIFIED SOLUTION
Avatar of Vitor Montalvão
Vitor Montalvão
Flag of Switzerland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Then do what I said in my first post,
UPDATE [dbo].[MyTable] SET Phone = '053'  + SUBSTRING(Phone,3,(LEN(Phone) - 3)) WHERE Phone LIKE '057%';

Open in new window


Be sure to test it first before running on production server.
hi themrrobert
i am sorry but your code don't work proprtely  
i test your code on this number : 057-3322057
this is the res that i get : 0537-332205
its wrong
thx