Есть ли в SQL Server эквивалент SequenceMatcher питона для объединения в столбцы, которые похожи?
В Python есть хорошая встроенная функция, которая позволяет мне проверять разницу между последовательностями двух строк. Пример ниже:
from difflib import SequenceMatcher
def similar(a, b):
return SequenceMatcher(None, a, b).ratio()
Пример:
similar("Apple","Appel")
0.8
similar("Apple","Mango")
0.0
Есть ли эквивалентная функция в SQL?
Что мне нужно сделать, это соединить две таблицы в столбце. В таблице A в этом столбце указан фактический номер учетной записи, в другой таблице - пользователь, добавляющий свой номер учетной записи, который не является обязательным полем, и из-за этого я заметил, что существуют незначительные различия в действительном номере учетной записи.,
Таблица А
account_num Name
5WWW55 John
DDDDD7 Jacob
SSSSX7 jingleheimer
Таблица Б
account_num Name
5WWW55 John
3SSSX7 jingleheimer -- First character is different
Select Table_A.account_num,
Table_b.Name
FROM Table_A
JOIN TABLE_B
on Table_A.account_num = Table_B.account_num
Ожидаемый результат:
account_num Name
5WWW55 John
SSSSX7 jingleheimer
2 ответа
Решение
Вы могли бы использовать DIFFERENCE
:
SELECT Table_A.account_num,
Table_b.Name
FROM Table_A
JOIN TABLE_B
ON DIFFERENCE(Table_A.account_num , Table_B.account_num) = 4;
Расстояние Левенштейна может быть тем, что вы ищете. Я использовал его раньше, чтобы сравнить сходство между строками в SQL-сервере.