Интересная проблема вопроса… лежит с вычислять вне как сопрягать специфически Кодего к номеру. Мой механизм использует длину приставки почтовый кода для того чтобы помочь давати в численном выражении самое соотвествующее одно. Заметьте что я как раз принимал ваши поставленные данные и быстро делал некоторым CTEs из его. Как раз показать вам как ОТБОРНОЕ работало бы…
С CalledNumbers КАК (
ВЫБЕРИТЕ «98798798797» КАК учет
СОЕДИНЕНИЕ ОТБОРНЫЕ «19123123123» --Я изменял это значение от вашего первоначально столба
СОЕДИНЕНИЕ ОТБОРНЫЕ «13123123123»
СОЕДИНЕНИЕ ОТБОРНЫЕ «12423123127»
), AreaCodes КАК (
ВЫБЕРИТЕ «12» КАК приставка, «соберите» КАК GroupName
СОЕДИНЕНИЕ ОТБОРНЫЕ «98», «группа b»
СОЕДИНЕНИЕ ОТБОРНОЕ «1», «собирает a»
СОЕДИНЕНИЕ ОТБОРНЫЕ «131», «группа 5»
СОЕДИНЕНИЕ ОТБОРНЫЕ «124», «группа 4»
)
ВЫБЕРИТЕ CalledNumbers.*, AreaCodes.*
ОТ CalledNumbers
ЛЕВЫЕ НАРУЖНЫЕ СОЕДИНЯЮТ AreaCodes НА CalledNumbers.Account КАК AreaCodes.Prefix + «%»
ГДЕ LEN (AreaCodes.Prefix) = (ВЫБЕРИТЕ МАКС (LEN (приставку)) ОТ AreaCodes ГДЕ CalledNumbers.Account ЛЮБЯТ AreaCodes.Prefix + «%")
И сделать ваше уточнение как требовалось:
УТОЧНЕНИЕ CalledNumbers УСТАНОВЛЕННОЕ CalledNumbers.GroupName = AreaCodes.GroupName ОТ
CalledNumbers
ЛЕВЫЕ НАРУЖНЫЕ СОЕДИНЯЮТ AreaCodes НА CalledNumbers.Account КАК AreaCodes.Prefix + «%»
ГДЕ LEN (AreaCodes.Prefix) = (ВЫБЕРИТЕ МАКС (LEN (приставку)) ОТ AreaCodes ГДЕ CalledNumbers.Account ЛЮБЯТ AreaCodes.Prefix + «%")