Home Forums SQL Server 7,2000 T-SQL Compare two varchar arrays one character at time until different RE: Compare two varchar arrays one character at time until different

  • Here is a nice function that works for up to 8 characters!

    CREATE

    FUNCTION dbo.fnFirstDifference

    (

    @FirstString VARCHAR(8),

    @SecondString VARCHAR(8)

    )

    RETURNS VARCHAR(17)

    AS

    BEGIN

    DECLARE @var VARBINARY(8),

    @pos TINYINT

    SELECT @var = CAST(CAST(@FirstString AS BINARY(8)) AS BIGINT) ^ CAST(CAST(@SecondString AS BINARY(8)) AS BIGINT),

    @pos = PATINDEX('%[^0]%', SUBSTRING(master.dbo.fn_sqlvarbasetostr(@var), 3, 16)),

    @pos = (1 + @pos) / 2

    RETURN LEFT(@FirstString, @pos) + '-' + LEFT(@SecondString, @pos)

    END

     


    N 56°04'39.16"
    E 12°55'05.25"