Мы работаем с базой данных на SQL Server 2016. В этой базе данных есть хранимая процедура, которая периодически обрабатывает полученные записи сообщений и создает записи в таблице транзакций. Недавно мы добавили дополнительное поле, содержащее код местоположения, и мне нужно сопоставить его со значением внутреннего идентификатора. Коды местоположения будут выглядеть примерно так:
A.12.10.3
QUAY
HD.STACK
CDC.MT
MT.STACK
Я хочу создать таблицу правил для оценки полученных кодов и сопоставления их с идентификаторами. Многие коды местоположений имеют одинаковый формат, поэтому я хотел бы что-то вроде этого:
CREATE TABLE LOCATION_MAP (
CRITERIA NVARCHAR(50) NOT NULL,
LOCATIONID INT NOT NULL,
CONSTRAINT PK_LOCATION_MAP PRIMARY KEY (CRITERIA, LOCATIONID)
);
Я бы тогда имел значения в таблице:
CRITERIA LOCATIONID
A.% 1
CDC.% 2
QUAY 3
HD.% 4
(я использую символ% таким же образом, как SQL Server использует его для условий LIKE).
Как лучше всего применить критерии поиска к значению поля?