[Oracle内部similiarity]の一部を使用しましたUTL_Match(https://docs.oracle.com/database/121/ARPLS/u_match.htm#ARPLS71219)に一致する...
このロジックは、名前が「類似」であり、表音綴りや誤字がt彼は一致しないと記録する。
%を調整することで、%があなたを近づけて完璧なマッチに近づける様子を見ることができます。
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
とquery/outputのスクリーンショットです。
それとも我々は一方向のみのcompairisonsをしたい場合、我々は
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
これは3つの希望のレコードを返します...内部結合と>を使用することができます。
But this does not explicitly check each any word matches.
が基本要件です。私はあなたに選択肢を認識してもらいたかっただけです。
これは何RDBMSのですか?いくつかのRDBMSに組み込まれているいくつかのパターンマッチングをお手伝いします。 – xQbert
@xQbert Oracle 11gを使用しています。 – Mike
[UTL_Match](https://docs.oracle.com/database/121/ARPLS/u_match.htm#ARPLS352)の機能を参照してください。そこにいくつかのまともな機能があります。 – xQbert