title: How to get an accurate JOIN using Fuzzy matching in Oracle
body: <p>I'm trying to join a set of county names from one table with county names in another table. The issue here is that, the county names in both tables are not normalized. They are not same in count; also, they may not be appearing in similar pattern always. For instance, the county 'SAINT JOHNS' in "Table A" may be represented as 'ST JOHNS' in "Table B". We cannot predict a common pattern for them.</p>
  
  <p>That means , we cannot use "equal to" (<code>=</code>) condition while joining. So, I'm trying to join them using the <code>JARO_WINKLER_SIMILARITY</code> function in oracle.
  My Left Outer Join condition would be like:</p>
  
  <pre><code>Table_A.State = Table_B.State 
  AND UTL_MATCH.JARO_WINKLER_SIMILARITY(Table_A.County_Name,Table_B.County_Name)&gt;=80
  </code></pre>
  
  <p>I've given the measure 80 after some testing of the results and it seemed to be optimal.
  Here, the issue is that I'm getting set of "false Positives" when joining. For instance, if there are some counties with similarity in names under the same state ("BARRY'and "BAY" for example), they will be matched if the measure is <code>&gt;=80</code>.
  This creates inaccurate set of joined data.
  Can anyone please suggest some work around?</p>
  
  <p>Thanks,
  DAV</p>