В моем SQL-выражении есть некоторая логика, которая убирает все знаки препинания, поэтому я могу легко сравнить два поля;тем не менее, у меня возникла проблема, когда моя таблица A имеет название банка BBVA BANCOMER SA INSTITUCION DE BANCA MULTIPLE, GRUPO FINANCIERO BBVA BANCOMER
, а моя таблица B - имя учреждения, BBVA BANCOMER
и другие варианты, которые не соответствуют таблице A.
Iесть несколько разных названий банков с этой проблемой.
Как мне добавить like '%<bank name here>%'
в мое объединение, чтобы найти все совпадения? Спасибо.
SELECT B.RECORD_KEY, A.[R.F.C.], A.[Bank Name]
FROM srcENRICH.dbo.FICO_BNKA_RFC_E AS A
INNER JOIN dbo.BM_BNKA_SRCENRICH_BM_SWIFT_S AS B
ON REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(sA.[Bank Name], ',', ''), '.', ''), '-', ''), '+', ''), '/', ''), '''', ''), '&', 'AND'), '(', ''), ')', '')
= REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(B.INSTITUTION_NAME, ',', ''), '.', ''), '-', ''), '+', ''), '/', ''), '''', ''), '&', 'AND'), '(', ''), ')', '')
Я думал, может быть, WHERE
предложение;однако я не знаю, как сравнить два поля вместе на основе функции LIKE
. Если бы я нашел решение для этого, нужно ли мне делать то же самое для каждого необходимого банка?
В настоящее время я получаю только 31 матч, основываясь на исключении пунктуации;Тем не менее, мой ожидаемый результат выше 1650. Это связано с тем, что BANCOMER не имеет совпадений нигде, основываясь исключительно на точном имени, однако, когда я захожу в базу данных таблицы B, для ~ 1016 * выводится ~ 1600 выходных данных. Мне нужно реализовать функцию LIKE
.