i need to check the first 3/5 character of string mobile number. having the above mention thing, if so need to extaract after that number to last number.
Declare @3Code varchar(3),@2Code varchar(2), @1Code varchar(1), @orginalNumber varchar(15);
SELECT TOP 1 @3Code = SUBSTRING(Mobile, 1, 3)
,@2Code = SUBSTRING(Mobile, 1, 2)
,@1Code = SUBSTRING(Mobile, 1, 1)
,@orginalNumber = Mobile
FROM LOGIN
IF (@3Code = '971')
BEGIN
DECLARE @length INT = 0
SET @length = (
SELECT len(@orginalNumber)
)
IF (@length > 8)
SET @orginalNumber = SUBSTRING(@orginalNumber, 4, 10)
ELSE
SET @orginalNumber = @orginalNumber
END
IF (@3Code = '00')
BEGIN
SET @orginalNumber = SUBSTRING(@orginalNumber, 6, 10)
END
IF (@3Code = '000')
BEGIN
SET @orginalNumber = SUBSTRING(@orginalNumber, 7, 10)
END
IF (@3Code = '+')
BEGIN
DECLARE @extractNumber VARCHAR(20)
SET @extractNumber = SUBSTRING(@orginalNumber, 2, 15)
DECLARE @3CodeEn VARCHAR(3)
,@2CodeEn VARCHAR(2)
,@1CodeEn VARCHAR(1)
SET @3CodeEn = SUBSTRING(@extractNumber, 1, 3)
SET @2CodeEn = SUBSTRING(@extractNumber, 1, 2)
SET @1CodeEn = SUBSTRING(@extractNumber, 1, 1)
IF (@3Code = '971')
BEGIN
SET @length = (
SELECT len(@orginalNumber)
)
IF (@length > 8)
SET @orginalNumber = SUBSTRING(@orginalNumber, 4, 10)
ELSE
SET @orginalNumber = @orginalNumber
END
IF (@3Code = '00')
BEGIN
SET @orginalNumber = SUBSTRING(@orginalNumber, 6, 10)
END
IF (@3Code = '000')
BEGIN
SET @orginalNumber = SUBSTRING(@orginalNumber, 7, 10)
END
END
Note: the code is too lengthy I need to optimize.
1