How to compare if two strings contain the same words in T-SQL for SQL Server 2008?

前端 未结 8 1237
长情又很酷
长情又很酷 2021-01-18 05:22

When I compare two strings in SQL Server, there are couple of simple ways with = or LIKE.

I want to redefine equality as:

If

8条回答
  •  我在风中等你
    2021-01-18 05:50

    A VERY simple way to do this... JC65100

    ALTER FUNCTION [dbo].[ITS_GetDifCharCount] 
    (
    @str1 VARCHAR(MAX)
    ,@str2 VARCHAR(MAX)
    )
    RETURNS INT
    AS
    BEGIN
    DECLARE @result INT
    
    SELECT @result = COUNT(*)
    FROM dbo.ITS_CompareStrs(@str1,@str2 )
    
    RETURN @result
    
    END
    
    
    ALTER FUNCTION [dbo].[ITS_CompareStrs]
    (
    @str1 VARCHAR(MAX)
    ,@str2 VARCHAR(MAX)
    )
    RETURNS 
    @Result TABLE  (ind INT, c1 char(1), c2 char(1))
    AS
    BEGIN
        DECLARE @i AS INT
                 ,@c1 CHAR(1)
                 ,@c2 CHAR(1)
    
        SET @i = 1
    
        WHILE LEN (@str1) > @i-1  OR LEN (@str2) > @i-1   
        BEGIN
    
          IF LEN (@str1) > @i-1
            SET @c1 = substring(@str1, @i, 1)  
    
          IF LEN (@str2) > @i-1
            SET @c2 = substring(@str2, @i, 1)
    
          INSERT INTO @Result([ind],c1,c2)
          SELECT @i,@c1,@c2
    
          SELECT @i=@i+1
                  ,@c1=NULL
                  ,@c2=NULL
    
        END
    
        DELETE FROM @Result
        WHERE c1=c2
    
    
    RETURN 
    END
    

提交回复
热议问题