Определение оператора мобильного номера телефона

Скрипты, запросы.

Определение оператора мобильного номера телефона

Сообщение invisib1e » 05 апр 2013, 10:35

Функция выводит оператора по следующему типу номера "9251234567", при попадании в номер семерки "79251234567" или восьмерки "89251234567", функция работать не будет, поэтому номер следует обработать до выполнения функции.
Вся информация по номерам взята отсюда.

Код: Выделить всё
create function [Operator] (@phone bigint)
returns varchar(50)
as
begin
   return
   case
      when substring(cast(@phone as varchar(10)), 1, 3) IN (910,911,912,913,914,915,916,917,918,919,980,981,982,983,984,985,986,987,988,989) then 'МТС'
      when substring(cast(@phone as varchar(10)), 1, 3) IN (920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938) then 'Мегафон'
      when substring(cast(@phone as varchar(10)), 1, 7) IN (9974450,9974451,9974452,9974453,9974454,9974455,9974456) then 'Мегафон'
      when substring(cast(@phone as varchar(10)), 1, 3) IN (903,905,906,909,960,961,962,963,964,965,966,967,968) then 'Билайн'
      when substring(cast(@phone as varchar(10)), 1, 3) IN (900,901,902,904,908,950,951,952,953) then 'Различные операторы, работающие по стандартам GSM'
      when substring(cast(@phone as varchar(10)), 1, 3) IN (958,959) then 'Виртуальный оператор сотовой связи'
      when substring(cast(@phone as varchar(10)), 1, 3) IN (993) then 'Ростелеком'
      when substring(cast(@phone as varchar(10)), 1, 3) IN (907) then 'Скайлинк'
      when @phone is null then 'Номер отсутствует'
   else 'Неизвестный' end
end
invisib1e
The Admin
 
Сообщения: 55
Зарегистрирован: 16 мар 2010, 22:28
Откуда: Russia, Moscow
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.

Вернуться в Transact-SQL

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron