CREATE FUNCTION dbo.IsNonWhiteSpaceIdentical (@Left VARCHAR(MAX),
@Right VARCHAR(MAX))
RETURNS BIT
AS
BEGIN
DECLARE @Return BIT,
@WhiteSpace VARCHAR(30) = '%[^' + CHAR(0) + CHAR(10) + CHAR(13) + CHAR(32) + CHAR(9) + ']%' ;
WITH l AS (SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS ROW,
c.ch
FROM Util.dbo.GetNumbers(1, LEN(@Left))
CROSS APPLY (SELECT SUBSTRING (@Left, digit, 1) ch) c
WHERE c.ch LIKE @WhiteSpace),
r AS (SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS ROW,
c.ch
FROM Util.dbo.GetNumbers(1, LEN(@Right))
CROSS APPLY (SELECT SUBSTRING (@Right, digit, 1) ch) c
WHERE c.ch LIKE @WhiteSpace)
SELECT @Return = CASE WHEN EXISTS ( SELECT *
FROM l
FULL OUTER JOIN r ON l.ROW = r.ROW
AND l.ch = r.ch
WHERE l.ROW IS NULL
OR r.ROW IS NULL ) THEN 0
ELSE 1
END
RETURN @Return
END