Recentemente, recebi a tarefa de fazer um relatório que exibiria endereços que podem ser compartilhados entre vários usuários em nosso sistema. O relatório será usado por um revisor que, então, verificará manualmente a conta do usuário e se os endereços estão realmente compartilhados. Encontrar endereços duplicados envolve encontrar strings que são muito semelhantes, mas não exatamente iguais. Ou seja, 931 Main St deve ser relatado como o mesmo que 931 Main Street. Portanto, o operador LIKE no SQL não atendeu às minhas necessidades. Depois de alguma pesquisa encontrei o algoritmo de distância de Liechtenstein e isso me ajudou a escrever o relatório.
O algoritmo de Levenshtein mede a diferença entre duas strings. Esse é o número mÃnimo de edições de um caractere necessárias para transformar uma string em outra. As edições de um único caractere podem ser inserções, exclusões e substituições.
Escrevi um post sobre como realizei a tarefa. https://nearsoft.com/blog/finding-duplicate-addresses-using-the-levenshtein-distance-metric-in-sql/ . Achei incrÃvel que, conforme minha carreira na SW continua, eu continuo aprendendo coisas novas que parecem muito antigas e que podem ser usadas para resolver problemas atuais. Os usuários corporativos ficaram bastante satisfeitos com os resultados.