Поиск строк, которые отличаются не более чем одной буквой от заданной строки в SAS с помощью PROC SQL

Сначала немного контекста. Я использую proc sql в SAS, и мне нужно получить все записи в наборе данных (с парой миллионов записей), которые имеют переменную «Имя», равную (скажем,) «Массачусетс». Конечно, поскольку данные когда-то вводились вручную людьми, возникают почти все мыслимые орфографические ошибки («Амссачусетс», «Кассачусетс» и т. Д.).

Я обнаружил, что некоторые записи содержат неправильные более двух символов, поэтому код

Name like "__ssachusetts" OR Name like "_a_sachusetts" OR ... OR Name like "Massachuset__"

выбирает записи, которые я ищу. Однако я надеюсь, что должен быть более удобный способ записи

Name that differs by at most 2 characters from "Massachusetts";

Есть? Или есть другая стратегия для получения этих записей? Я пробовал искать как в stackoverflow, так и в Интернете, но безуспешно. Я также относительный новичок как в SQL, так и в SAS.

Некоторая дополнительная информация: База данных не на английском языке (и фактическая строка не «Массачусетс»), поэтому использование SOUNDEX на самом деле неосуществимо (если оно когда-либо было).

Заранее спасибо.

(Edit: Улучшено название)

13
задан Har 27 April 2011 в 06:29
поделиться