字符串之间的相似性 - SQL Server 2005

cs0*_*815 4 sql sql-server-2005 user-defined-functions

我正在寻找一种简单的方法(UDF?)来建立字符串之间的相似性.该SOUNDEXDIFFERENCE功能似乎并没有做的工作.

相似性应基于共同的字符数(订单事项).

例如:

Spiruroidea sp.AM-2008

Spiruroidea gen.SP.AM-2008

应该被认为是相似的.

任何指针都将非常感激.

谢谢.

基督教

Dan*_*llo 9

您可能需要考虑将Levenshtein Distance算法实现为UDF,以便它返回需要在字符串A上执行的操作数,以使其成为字符串B.这通常称为编辑距离.

然后,您可以将Levenshtein距离函数的结果与固定阈值或字符串A或字符串B的百分比长度进行比较.

您只需按如下方式使用它:

WHERE LEVENSHTEIN(Field_A, Field_B) < 4;
Run Code Online (Sandbox Code Playgroud)

您可能想要查看SQL Server的以下Levenshtein Distance实现:

  • 带有工作链接的固定版本:http://devio.wordpress.com/2010/09/07/calculating-levenshtein-distance-in-tsql/ (2认同)