たとえば、2つの文字列があります。
- 'ソース:シーベル; 名前:メリー・ジェーン。性別:F; 年齢:24歳。N;'
- 'ソース:シーベル; 名前:マリー; 性別:F; 年齢:24歳。N;'
私が必要とする結果は次のとおりです。
- 名前:メリー・ジェーン。
- 名前:マリー;
ほとんどの場合、以下のコードを逆にする必要があります
with cte1 as (
select 1 id, 'Source:Siebel; Name:Mary Jane; Gender:F; Age:24; N;' str from dual
union all
select 2 id, 'Source:Siebel; Name:Marie; Gender:F; Age:24; N;' str from dual
), cte2 as (
SELECT distinct id, trim(regexp_substr(str, '[^ ]+', 1, level)) str
FROM cte1 t
CONNECT BY instr(str, ' ', 1, level - 1) > 0
)
select distinct t1.str
from cte2 t1
join cte2 t2 on (t1.str = t2.str and t1.id != t2.id)
結果として、2 つの文字列の類似性 [QueryResult] が得られました。
このSQLスクリプトをOracle Fusionで実行する必要があるため、この手順を使用できません