Domanda

Stiamo facendo un sacco di lavoro verso il tentativo di conciliare circa 1.000 nomi di produttore duplicati e 1.000.000 di codici duplicati. Una cosa che ha messo a punto è come "match" cose come "limitata" vs "Ltd." vs "Ltd"

Lo scopo è per l'applicazione di conciliare questi elementi abbinati in un formato standard. Quindi:

ACME Ltd. ACME limitata ACME Ltd

dovrebbero essere tutti riconciliati in ACME srl.

Questo sarà usato anche per prevenire entrare duplicati aggiuntivi in ??futuro.

Qualche suggerimento su come eseguire questa pattern matching in SQL Server? Eventuali algoritmi noti per trovare oggetti con equivalenze mappate, ecc ...?

Grazie!

Eric.

È stato utile?

Soluzione

Come su una tabella che elenca ciò che si desidera in una colonna e variazioni nel prossimo?

Ltd   Limited 
Ltd   Ltd.
St    Street
St    Str.

Quindi, se si trova una corrispondenza sulla seconda colonna, si cambia alla prima. Si può richiedere diverse iterazioni, come si trova altre alternative.

Altri suggerimenti

SQL Server ricerca full-text è possibile utilizzare sinonimi:

Per ogni full-text di lingua, SQL Server fornisce anche un file in cui è possibile opzionalmente definire sinonimi lingua specifici per estendere l'ambito di query di ricerca (un file del Thesaurus).

Nel tuo caso si potrebbe aggiungere una sezione simile alla seguente:

 <expansion>
         <sub>Limited</sub>
         <sub>Ltd</sub>
         <sub>Ltd.</sub>
 </expansion>

Ecco un link che va più in dettaglio su come modificare il file del thesaurus. Questo può funzionare per ciò che si sta cercando di fare ...

SQL Server offre anche alcuni limitati pattern matching utilizzando LIKE. Suggerirei guardando oltre le opzioni offre per vedere se saranno sufficienti per le vostre esigenze.

Se LIKE non è sufficiente si può guardare rel="nofollow"> sempre che vi permetterà di utilizzare le espressioni regolari. Questo vi permetterà di abbinare schemi molto più complessa ...

scroll top