подходящий метод для сопоставления текста в одном столбце с другим столбцом в oracle

#sql #oracle #oracle11g #oracle-sqldeveloper

#sql #Oracle #oracle11g #oracle-sqldeveloper

Вопрос:

Я должен написать запрос в Oracle. У меня есть таблица с именем ‘Entity’ с 2 столбцами ‘Pref_mail_name’ и ‘spouse_name’. Теперь мне нужен список всех имя_ супруги, где фамилия имя_ супруги не заполняется из pref_mail_name. Например, моя таблица содержит следующие данные

 Pref_mail_name            spouse_name       

Kunio Tanaka           |  Lorraine            
Mrs. Betty H. Williams | Chester Williams    
Mr. John Baranger      | Mrs. Cathy Baranger  
William kane Gallio    | Karen F. Gallio     
Sangon Kim             | Jungja        
  

мне нужен вывод только в виде 1-й и 5-й строк. Я провел некоторый анализ и придумал встроенную функцию oracle

 SELECT PREF_MAIL_NAME, SPOUSE_NAME, UTL_MATCH.JARO_WINKLER_SIMILARITY(a, b) 
similarity from entity
order by similarity;
  

Но приведенный выше запрос не выглядит подлинным.Даже если фамилия супруга не заполняется из pref_mail_name, она дает значение выше 80 для сходства.

Комментарии:

1. что такое a и b в вашем запросе? можете ли вы предоставить воспроизводимый тестовый пример? мой экземпляр показывает < 50 для строк 1 и 5 и > = 64 для остальных

2. Всегда ли последним словом будет фамилия? Если да, то почему бы просто не сравнить, совпадают ли последние слова — нет необходимости использовать функции подобия

3. Это будет практически невозможно. Вы можете посмотреть на последнее слово, но последнее слово может быть суффиксом имени, то есть «Младший», что означает, что «Дженнифер Смит» и «Боб Смит-младший» не будут совпадать. Вы можете использовать совпадение, как сейчас, но «Кристин Телл» может сообщить о совпадении с «Кристин Хилл». Не говоря уже о том, что многие жены больше не берут фамилии своих мужей.

4. Hello..my запрос был SELECT PREF_MAIL_NAME, SPOUSE_NAME, UTL_MATCH.JARO_WINKLER_SIMILARITY(PREF_MAIL_NAME, SPOUSE_NAME) сходство из порядка объектов по сходству; Всегда фамилия отображается в последнем .. не могли бы вы сказать мне, как разбить слова в pref_last_name и spouse_name и сравнить их фамилии? Я в порядке, если некоторые строки отсутствуют там, где есть JR, я могу сделать их вручную каким-либо другим подходом