次のように2つのテーブルを結合しようとしています。Oracle sql別のテーブルのフィールドに単語を含む1つのテーブルに基づいてテーブルを結合
テーブルAのフィールド1がテーブルBの単語として正確な単語を持つ場所に参加したいだけですが、別の単語の一部ではありません。だから、GOとOK GOはうまく参加することができます。FOREGOは参加できません。
私はreg_expを使って結合を達成しようとしていますが、実装方法を理解できません。
次のように2つのテーブルを結合しようとしています。Oracle sql別のテーブルのフィールドに単語を含む1つのテーブルに基づいてテーブルを結合
テーブルAのフィールド1がテーブルBの単語として正確な単語を持つ場所に参加したいだけですが、別の単語の一部ではありません。だから、GOとOK GOはうまく参加することができます。FOREGOは参加できません。
私はreg_expを使って結合を達成しようとしていますが、実装方法を理解できません。
私はreg_expを使用して結合を達成することができますが、実装方法を理解できません。
あなたはREGEXP_LIKE
使用することができます
SELECT DISTINCT A.*
FROM TableA A
JOIN TAbleB B
ON regexp_like(A.Field1, '(|^)('|| B.Field1|| ')(|$)');
を単語がスペースで囲まれていると仮定すると、あなたが行うことができます:
select a.*
from a join
b
on ' ' || a.field1 || ' ' like '% ' || b.field1 || ' %';
この方法もバージョンどちらをregexp_substr()
を使用しています非常に良いパフォーマンスをしてください。私はあなたがテーブルbからの単語を別のテーブルに解析し、単純な等価円を使用することをお勧めします。
それは魅力的に機能しました!どうもありがとうございます! – user3399935