您的位置:首页 > 数据库

sql判断字符串相似度

2014-08-08 11:42 176 查看
相似度公式:Kq*q/(Kq*q+Kr*r+Ks*s) (Kq > 0 , Kr>=0,Ka>=0)
设q是字符串1和字符串2中都存在的单词的总数,s是字符串1中存在,字符串2中不存在的单词总数,
r是字符串2中存在,字符串1中不存在的单词总数,t是字符串1和字符串2中都不存在的单词总数。
<ol class="dp-j" start="1">create FUNCTION [dbo].[F_strcompare](@str1 VARCHAR(8000),
                                 @str2 VARCHAR(8000))
    RETURNS VARCHAR(10)
    AS
      BEGIN
          DECLARE @i   INT,
                  @j   INT,
                  @k   INT,
                  @ret VARCHAR(10)

          SELECT @i = MAX(strlen),
                 @j = MIN(strlen),
                 @k = 0
          FROM   (SELECT strlen=Len(@str1)
                  UNION
                  SELECT strlen=Len(@str2)) t

          IF( @j = 0 )
            RETURN '0'

          WHILE @j > 0
            BEGIN
                IF Substring(@str1, @j, 1) = Substring(@str2, @j, 1)
                  SET @k=@k + 1

                SET @j=@j - 1
            END

          SET @ret = Rtrim(CAST(@k * 100.0 / @i AS NUMERIC(3, 0)))

          RETURN @ret
      END</ol>
来自:取色器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: