一个匹配字符串的自定义sql函数

本文介绍了一个自定义的SQL函数FN_Resemble,该函数通过计算两个字符串中共同字符的数量来评估它们之间的相似度。相似度分数是通过将匹配字符数量除以输入字符串长度得出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述:自定义的函数用于匹配@Cloumna 与 @Cloumnb 的相似度。方法:用@Cloumna 的每一个字符与@Cloumnb 比较,若字符存在于@Cloumnb 中,则记录字符数。例:@Cloumna 为'ABCDEFGHIJ'* 匹配有字符'A','B','C','H','I','J'存在于@Cloumnb,则匹配的字符数为6,返回结果为6*0.1/LEN(@Cloumna)=0.6

CREATE FUNCTION [dbo].[FN_Resemble]   --函数:两个字段进行匹配,返回匹配率
    (@Cloumna NVARCHAR(MAX),
     @Cloumnb NVARCHAR(MAX)
    )
RETURNS FLOAT
AS
BEGIN
    DECLARE @num FLOAT,@len int
    SET @Cloumna=ISNULL(@Cloumna,0)
    SET @Cloumnb=ISNULL(@Cloumnb,0)
    SET @len=1
    SET @num=0
    WHILE(LEN(@Cloumna)<>0 AND LEN(@CloumnB)<>0)
    BEGIN
        WHILE(@len<=LEN(@Cloumna))
        BEGIN
            DECLARE @a NVARCHAR(4)
            SET @a=''
            SET @a=SUBSTRING(@Cloumna,@len,1)
            IF(CHARINDEX(@a,@CloumnB)>0)
            BEGIN
            SET @num=@num+1
            END
        SET  @len=@len+1   
        END
    SET @num=@num*1.0/LEN(@Cloumna)
    BREAK
    END

    RETURN @num
END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值