Есть ли в 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-сервере.

Другие вопросы по тегам