Dies ist eher ein Kommentar als eine vollständige Antwort, aber können Sie in die richtige Richtung lenken.
Sie müssen eine Ähnlichkeitsmetrik definieren, die zwei Strings vergleicht und einen Wert zurückgibt, der die Ähnlichkeit zwischen ihnen quantifiziert. Siehe beispielsweise A better similarity ranking algorithm for variable length strings. Wie Sie das für die Verwendung in einer SQL-Abfrage implementieren, hängt davon ab, welches DBMS Sie verwenden. Sie müssen außerdem einen Schwellenwert für diese Metrik festlegen, die als "nahe genug" definiert werden soll.
Dann können Sie ein SQL-Abfrage so etwas schreiben:
select
a_val as group,
b_val as stringval
from
(
select
a_val,
b_val,
similarity
from
(
select
a.stringval as a_val,
b.stringval as b_val,
sim_metric(a.stringval, b.stringval) as similarity
from
stringlist as a,
stringlist as b
where
b.stringval >= a.stringval
) as sim
where
similarity > similarity_threshold
) as grp
order by
a_val;
wo sim_metric()
Ihre Ähnlichkeitsfunktion ist und similarity_threshold
ist die gewählte Schwelle. Ein Name in jeder Gruppe ähnlicher Namen wird als Gruppenname verwendet.
Was meinst du mit Gruppe ähnliche Datensätze? Kannst du es deutlich erklären? –
https://stackoverflow.com/questions/14700074/how-to-find-the-match-between-text-that-typo-in-excel grundsätzlich sortieren nach soundex() – xQbert