Мне нужно объединить две таблицы MSISDN и RANGES.
Пример:
MSISDN table:
MSISDN NETWORK
110011500 D000
110211501 D000
RANGES table:
PREFIX NETWORK DESCRIPTION
11 D000 NEOTEL
1102 D000 TELKOM
Я присоединяюсь как:
select *
from MSISDN a
left join RANGES b
on a.msisdn like b. prefix || '%'
and a.network = b.network;
Этот запрос выдаст мне дубликаты в случае, как для MSISDN "110211501", потому что он будет совпадать с обоими префиксами.
Мне нужно избегать этих дубликатов. Мне нужно иметь совпадение только с самым длинным префиксом (в данном случае «1102»).
Есть ли способ, как присоединиться, избегая дубликатов или делая дублирование впоследствии?