In postgres puoi usare fuzzystrmatch pacchetto. Fornisce un levenshtein
funzione, che restituisce la distanza tra due testi, puoi quindi eseguire la corrispondenza fuzzy con il seguente predicato esemplificativo:
where levenshtein(street_address, '123 Main Avex') <= 1
Questo corrisponderà a tutti i record, perché la distanza tra "123 Main Ave" e "123 Main Avex" è 1 (1 inserimento).
Naturalmente, valore 1
qui è solo un esempio e eseguirà la corrispondenza in modo abbastanza rigoroso (differenza di un solo carattere). Dovresti utilizzare un numero maggiore o, come suggerisce @IVO GELOV, utilizzare la distanza relativa (distanza divisa per la lunghezza).