描述:自定义的函数用于匹配@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