einige der [Orakel interne similiarity] Verwendung gefunden in UTL_Match (https://docs.oracle.com/database/121/ARPLS/u_match.htm#ARPLS71219) passender ...
Diese Logik ist mehr für passende Namen oder Beschreibungen, die "ähnlich" sind und wo phonetische Schreibweisen oder Tippfehler t verursachen können er zeichnet nicht überein.
Durch die Anpassung der .5 unten können Sie sehen, wie die% Sie näher an perfekte Übereinstimmungen bringen.
with cte as (
select 'Content of values' val from dual union all
select 'Values identity' val from dual union all
select 'triple combo' from dual union all
select 'my combo'from dual union all
select 'sub-zero combo'from dual)
select a.*, b.*, utl_match.edit_distance_similarity(a.val, b.val) c, UTL_MATCH.JARO_WINKLER(a.val,b.val) JW
from cte a
cross join cte b
where UTL_MATCH.JARO_WINKLER(a.val,b.val) > .5
order by utl_match.edit_distance_similarity(a.val, b.val) desc
und Screenshot der Abfrage/Ausgabe.
Oder wir könnten eine innere verwenden beitreten und> wenn wir nur einen Weg compairisons wollen ...
select a.*, b.*, utl_match.edit_distance_similarity(a.val, b.val) c, UTL_MATCH.JARO_WINKLER(a.val,b.val) JW
from cte a
inner join cte b
on A.Val > B.Val
where utl_match.jaro_winkler(a.val,b.val) > .5
order by utl_match.edit_distance_similarity(a.val, b.val) desc
dies gibt die 3 gewünschten Datensätze.
But this does not explicitly check each any word matches.
das war Ihre Grundvoraussetzung. Ich wollte nur, dass Sie Alternativen kennen.
Welche RDBMS ist das? Du machst hier einige Muster, die einige RDBMS in Funktionen eingebaut haben, die helfen könnten. – xQbert
@xQbert Ich benutze Oracle 11g. – Mike
Schauen Sie sich die [UTL_Match] (https://docs.oracle.com/database/121/ARPLS/u_match.htm#ARPLS352) Funktionen an. Es gibt einige anständige übereinstimmende Funktionen dort. – xQbert