有限公司,有限公司,有限公司等的字符串模式匹配

时间:2011-01-19 23:43:07

标签: sql sql-server pattern-matching equivalent

我们正在努力调和大约1,000个重复的制造商名称和1,000,000个重复的零件号。有一件事是如何“匹配”像“有限”和“有限公司”这样的东西。与“有限公司”

目的是让应用程序将这些匹配的项目协调为标准格式。所以:

ACME Ltd. ACME有限公司 ACME有限公司

所有人都应该调和到ACME有限公司。

这也将用于防止将来输入其他重复项。

有关如何在SQL Server中完成此模式匹配的任何建议?任何已知的算法来查找具有映射等效性的项目等......?

谢谢!

埃里克。

2 个答案:

答案 0 :(得分:3)

如何在一个列中列出您想要的内容以及下一个列中的变体?

Ltd   Limited 
Ltd   Ltd.
St    Street
St    Str.

然后,如果您在第二列上找到匹配项,则将其更改为第一列。可能需要多次迭代,因为您会找到其他替代方案。

答案 1 :(得分:2)

使用SQL Server Full Text Search您可以使用同义词:

  

对于每种全文语言,SQL   服务器还提供了一个文件   你可以选择定义   要扩展的特定于语言的同义词   搜索查询的范围(a   同义词库文件)。

在您的情况下,您可以添加如下所示的部分:

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

Here is a link详细介绍了如何修改同义词库文件。这可能适用于你想要做的事情......

SQL Server还使用LIKE提供了一些有限的模式匹配。我建议looking over the options提供它,以确定它们是否足以满足您的需求。

如果LIKE不足,您可以随时look at creating a CLR stored procedure or UDFs使用正则表达式。这将允许您匹配更复杂的模式......

相关问题