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

Откуда: Набережные Челны - Казань
Сообщений: 66
Всем привет.
Нужно сравнить два слова - два русских слова, а если точнее две ФИО.
Есть две таблицы. В обоих есть поле ФИО. Запрос должен возвратить список фамилий которые есть и там и здесь. Причем возможна ситация: н-р Иванов Иван Иванович и ИванАв Иван Иванович (т.е опечатка), т.е запрос должен отдавливать и такие ситуации.
Не подскажите может есть какая то функция? Заранее всем спасибо.
5 авг 09, 14:46    [7500935]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на сравнение слов  [new]
Mikle83
Member

Откуда: Санкт-Петербург
Сообщений: 629
Топикстартер смотрите с сторону функции Soundex

select soundex ('Ivanav')
Select soundex ('Ivanov')


но вот с русским она дружит плохо
5 авг 09, 15:20    [7501201]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на сравнение слов  [new]
PaulYoung
Member

Откуда: Москва
Сообщений: 2549
Batulla,

ИМХО, если Вы ищете совпадения, то, "отлавливать такие ситуации" не вполне корректно, ибо откуда Вы знаете, опечатка там или нет? Впрочем, возможно, Вам помогут LIKE и строковые ф-ции...
5 авг 09, 15:21    [7501205]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на сравнение слов  [new]
PaulYoung
Member

Откуда: Москва
Сообщений: 2549
Mikle83
Топикстартер смотрите с сторону функции Soundex
+ DIFFERENCE ещё гляньте
5 авг 09, 15:28    [7501274]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на сравнение слов  [new]
Batulla
Member

Откуда: Набережные Челны - Казань
Сообщений: 66
PaulYoung
Mikle83
Топикстартер смотрите с сторону функции Soundex
+ DIFFERENCE ещё гляньте

Эти две функции для латиницы и для кириллицы не работают. Может есть какой то обход.
5 авг 09, 15:35    [7501337]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на сравнение слов  [new]
Mikle83
Member

Откуда: Санкт-Петербург
Сообщений: 629
транслитерация... Т.е. преобразование "русских слов" в "russkih slov".
Думаю накопать в интернете готовых механизмов можно массу.
На счет наличия на сервере встроенных механизмов — я ничего не слашал такого
5 авг 09, 15:51    [7501521]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на сравнение слов  [new]
Batulla
Member

Откуда: Набережные Челны - Казань
Сообщений: 66
Mikle83,
Сделал транслитерацию, переел 'Иванов Иван' в 'ivanov ivan'. Далее применил DIFFERENCE и обнаружил что

select DIFFERENCE('ivanov ivan', 'ivanov petr')  = 4 

Можно ли считать это правильным или же Soundex имеет какое то ограничение на количество букв в слове.
5 авг 09, 16:27    [7501804]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на сравнение слов  [new]
Mikle83
Member

Откуда: Санкт-Петербург
Сообщений: 629
не стоит сравнивать фразы.
Делите на слова и сравнивайте каждое слово в отдельности.
5 авг 09, 16:33    [7501851]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на сравнение слов  [new]
Batulla
Member

Откуда: Набережные Челны - Казань
Сообщений: 66
Как вариант. Ладно спасибо за советы, наверное так и сделаю.
5 авг 09, 16:36    [7501865]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на сравнение слов  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Mikle83
транслитерация... Т.е. преобразование "русских слов" в "russkih slov".
Думаю накопать в интернете готовых механизмов можно массу.
Здесь тоже обсуждалось.
Например
5 авг 09, 16:41    [7501902]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить