У меня есть записи номеров мобильных телефонов, которые поступают в базу данных, и большинство номеров начинаются с 27, 0, +27 и 0027. Поэтому я построил запрос ниже, и он работает просто отлично. Единственная проблема заключается в том, что я недавно обнаружил, что есть некоторые числа, которые не содержат префиксов.
Когда число входит без префикса, оно всегда имеет 9 цифр, например 823744777, поэтому я предполагаю, что яможет использовать 9 цифр в качестве первой точки вызова в моей проверке. Как я могу изменить запрос ниже, чтобы обслужить такие числа (обслуживая 9-значные значения, которые не начинаются с 0, 27, 0027 или +27)
IF(@cellNumber2<> '' AND ((@cellNumber2 like '27%' and len(@cellNumber2) !=11)
OR (@cellNumber2 like '0%' and len(@cellNumber2) !=10)
OR (@cellNumber2 like '+27%' and len(@cellNumber2) !=12)
OR (@cellNumber2 like '0027%' and len(@cellNumber2) !=13)))
BEGIN
IF ((SELECT ISNULL(ClientId,0) FROM tbl_invalidNumbers
WHERE ClientId = @ClientId) = 0)
BEGIN
INSERT INTO tbl_invalidNumbers(ClientId, cellNumber2)
VALUES(@ClientId, @cellNumber2)
END
ELSE
BEGIN
UPDATE tbl_invalidNumbers
SET cellNumber2 = @cellNumber2
WHERE ClientId = @ClientId
END
UPDATE tbl_tempDataTable
SET cellNumber2 = null WHERE ClientId = @ClientId
END