Create a Function
ALTER FUNCTION dbo.udf_GetNumeric
(@strAlphaNumeric VARCHAR(1000))
RETURNS VARCHAR(1000)
AS
BEGIN
DECLARE @intAlpha INT
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric)
BEGIN
WHILE @intAlpha > 0
BEGIN
SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '' )
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric )
END
END
RETURN ISNULL(@strAlphaNumeric,0)
END
GO
Test Data
DECLARE @temp TABLE(string NVARCHAR(1000))
INSERT INTO @temp (string)
VALUES
('T: (985)-124-5601'),
('(985)124-5601'),
('985)-124-5601'),
('985.124.5601'),
('9851245601'),
('985124-5601 EX 1432'),
('985-(124)-5601')
Query
SELECT LEFT(OnlyNumbers,3) + '-' + SUBSTRING(OnlyNumbers,4,3) + '-' + RIGHT(OnlyNumbers, 4)
FROM (
SELECT LEFT(dbo.udf_GetNumeric(string), 10) OnlyNumbers
FROM @temp
)z
Result
985-124-5601
985-124-5601
985-124-5601
985-124-5601
985-124-5601
985-124-5601
985-124-5601