#sql #postgresql
#sql #postgresql
Вопрос:
У меня есть две таблицы тегов, к которым необходимо присоединить несколько столбцов тегов, которые не являются точными (разные заглавные буквы, обработка разделителей, порядок и т. Д.)
Также существует множество разных полей, которые могут иметь значение null, и таблицы должны сравниваться только по ненулевым значениям.
Таблица 1
tags1 | tags2 | tags3
---------------- ------------------------ -----------
jhon, paul | null | corn, jhon, bloke
null | horse, joke, bloke | Aristoteli, JANEH fonda
Таблица 2
ids | names | clasifiers2
---------------- ------------------------ -----------
Paul, Jhon | null | corn, Jhon
null | Aristoteli, JANEH fonda| horse, joke, bloke
Да, это беспорядок.
Есть ли в SQL функция, которая возвращала бы индекс того, насколько близки две строки, и позволяла бы объединять две записи только для значений, отличных от null?
Комментарии:
1. postgresql.org/docs/current/fuzzystrmatch.html
2. Часть объединения по-прежнему остается проблемой, потому что у меня нет фактического идентификатора для слияния, но это дает мне часть, но если я выясню, как присоединиться к этому беспорядку, я могу фильтровать результаты по некоторому нечеткому соответствию
3. Пожалуйста, укажите желаемые результаты, а также, если у вас есть что-то, что вы пробовали, опубликуйте это вместе с полученными результатами.
Ответ №1:
Я написал функцию для этого для SQL Server. Вы можете переписать его для PG. Имя функции — F_INFORCE_BASIQUE, и вы найдете приведенный ниже код: https://sqlpro.developpez.com/cours/sql/comparaisons-motifs/#LVI Я предполагаю, что вы немного читаете по-французски.