Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Поиск частичных совпадений help  [new]
Владимир09
Member

Откуда:
Сообщений: 9
Всем доброго дня)
Столкнулся с проблемой выборки частичных совпадений в разных таблицах.
А именно: есть две таблицы
В первой есть столбец "фио" и столбец с "дата рождения1" назовем эту таблицу table1
Во второй столбцы "фамлия" и "имя отчество" и "дата рождения2" назовем table2
Надо сравнить наиболее близкие совпадения.
Я беру соединяю
select *
from table1 a full join table2 b on a."дата рождения1"=b."дата рождения2"
where "фио"+"дата рождения1"="фамлия"+"имя отчество"+"дата рождения2"

Но при таком запросе выдаются только полные совпадения, а как сделать, чтобы выдавал также те совпадения, в которых различия в 2,3 или 5 символов
14 окт 18, 12:40    [21703592]     Ответить | Цитировать Сообщить модератору
 Re: Поиск частичных совпадений help  [new]
aleks222
Member

Откуда:
Сообщений: 855
"еще" и "ишо" - скока символов различается?
14 окт 18, 13:06    [21703601]     Ответить | Цитировать Сообщить модератору
 Re: Поиск частичных совпадений help  [new]
Владимир09
Member

Откуда:
Сообщений: 9
Два символа
14 окт 18, 13:16    [21703602]     Ответить | Цитировать Сообщить модератору
 Re: Поиск частичных совпадений help  [new]
Владимир09
Member

Откуда:
Сообщений: 9
Три даже
14 окт 18, 13:16    [21703604]     Ответить | Цитировать Сообщить модератору
 Re: Поиск частичных совпадений help  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7407
Владимир09,

в таких ситуациях принято рекомендовать использование алгоритма Левенштейна, но это не таблетка от всех болезней, т.к. тут дело в семантическом анализе. А это не чихнуть задача.
14 окт 18, 14:49    [21703629]     Ответить | Цитировать Сообщить модератору
 Re: Поиск частичных совпадений help  [new]
Владимир Затуливетер
Member

Откуда:
Сообщений: 427
Делали такое на базе алгоритма Левенштейна.
Для этого сделали сборку clr с функциями которые использовали при сравнеии, tsql реализация была тормознутей значительно.
Но имейте в виду, что такие запросы практически не оптимизируются, придется сканить таблицы.
И результат не 100% как понимаете, всегда будут записи которые не будут обработаны таким подходом.
15 окт 18, 11:39    [21703963]     Ответить | Цитировать Сообщить модератору
 Re: Поиск частичных совпадений help  [new]
Alexander Us
Member

Откуда:
Сообщений: 1095
Владимир09,

А сколько примерно строк в каждой из таблиц?
15 окт 18, 13:12    [21704101]     Ответить | Цитировать Сообщить модератору
 Re: Поиск частичных совпадений help  [new]
PizzaPizza
Member

Откуда:
Сообщений: 309
Владимир09,

Правильно ли я понимаю, что "различия в 2,3 или 5 символов" в вашем случае не применимы к датам, и, если мы говорим про русский язык, к именам и частично к отчествам, и, по сути, вам нужно искать сочетание даты рождения + ИО и некая фуззи лождик на фамилию?
15 окт 18, 19:58    [21704486]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить