sql字符串相似度

发布时间:2018-08-01编辑:佚名阅读(1725)

CREATE FUNCTION [dbo].[get_semblance_By_2words](@word1 VARCHAR(500), @word2 VARCHAR(500))
RETURNS INT
AS BEGIN
    DECLARE @re INT;
    DECLARE @maxLenth INT;
    DECLARE @i INT, @l INT;
    DECLARE @tb1 TABLE(child VARCHAR(500));
    DECLARE @tb2 TABLE(child VARCHAR(500));
    SET @i=1;
    SET @l=1;
    SET @maxLenth=LEN(@word1);
    IF LEN(@word1)<LEN(@word2)BEGIN
        SET @maxLenth=LEN(@word2);
    END;
    WHILE @l<=LEN(@word1)BEGIN
        WHILE @i<=LEN(@word1)AND @i<=LEN(@word1)-@l+1 BEGIN
            INSERT @tb1(child)VALUES(SUBSTRING(@word1, @l, @i));
            SET @i=@i+1;
        END;
        SET @i=1;
        SET @l=@l+1;
    END;
    SET @i=1;
    SET @l=1;
    WHILE @l<=LEN(@word2)BEGIN
        WHILE @i<=LEN(@word2)AND @i<=LEN(@word2)-@l+1 BEGIN
            INSERT @tb2(child)VALUES(SUBSTRING(@word2, @l, @i));
            SET @i=@i+1;
        END;
        SET @i=1;
        SET @l=@l+1;
    END;
    SELECT @re=ISNULL(MAX(LEN(a.child)* 100 / @maxLenth), 0)
    FROM @tb1 a, @tb2 b
    WHERE a.child=b.child;
    RETURN @re;
END;


  关键字:sql字符串相似度


鼓掌

0

正能量

0

0

呵呵

0


评论区