Попытка просто вернуть 10-значный телефонный номер - Я думаю, что я сделал хорошо для удаления различных нечисловых символов --Что мне нужна помощь с удалением ' 1 ' из тех случаев, у которых есть номер телефона в формате' 1 (xxx) xxx-xxxx '.Использование оператора if внутри скалярной функции SQL Server 2012
IF OBJECT_ID (N'dbo.CleanPhone',N'FN') IS NOT NULL
DROP FUNCTION dbo.CleanPhone
GO
CREATE FUNCTION dbo.CleanPhone (@PhoneNumber varchar(200))
RETURNS varchar(10)
AS
BEGIN
DECLARE @CleanPhone varchar(200);
SET @CleanPhone = replace(replace(replace(replace(replace(ltrim(rtrim(@PhoneNumber)),'-',''),' ',''),'(',''),')',''),'.','')
--being mysudo code
IF LEN @CleanPhone > 10 AND Left(@CleanPhone,2) = '1 ' THEN Right(CleanPhone,10)
ELSE @CleanPhone
--end my sudo code
RETURN @CleanPhone
END;
GO
После удаления всех специальных символов из поля PhoneNumber, просто возвращаем направо (CleanPhone, 10). Нет необходимости в состоянии IF вообще. – knkarthick24