DECLARE @String VARCHAR(300);
SET @String =
'here is my phone number 1234567890. but my cell is 4444444444, ' +
'and my work number is 5555555555. i said my my phone number 1234567890. ' +
'and my cell is 4444444444, and my work number is 5555555555.';
WITH Numbers (n)
AS (
-- Numbers 1...length of string
SELECT TOP (DATALENGTH(@String))
ROW_NUMBER() OVER(
ORDER BY (SELECT 0))
FROM master.sys.columns C1,
master.sys.columns C2,
master.sys.columns C3
)
SELECT @String = STUFF(@String, N.n + 4, 6, REPLICATE('X', 6))
FROM Numbers N
WHERE SUBSTRING(@String, N.n, 10) LIKE '4444[0-9][0-9][0-9][0-9][0-9][0-9]'
OR SUBSTRING(@String, N.n, 10) LIKE '1234[0-9][0-9][0-9][0-9][0-9][0-9]';
SELECT @String;
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi