CREATE FUNCTION dbo.CUSTOMBITAND
(
@permission1 float(53),
@permission2 float(53)
)
RETURNS float(53)
AS
BEGIN
DECLARE
@permission1Char varchar(16),
@permission2Char varchar(16),
@temp1 char(1),
@temp2 char(2),
@returnNum numeric(1)
SET @permission1Char = ltrim(rtrim(CAST(abs(isnull(@permission1, 0)) AS varchar(max))))
SET @permission2Char = ltrim(rtrim(CAST(abs(isnull(@permission2, 0)) AS varchar(max))))
DECLARE
@i int
SET @i = 16
WHILE @i >= 1
BEGIN
SET @temp1 = isnull(substring(@permission1Char, @i, 1), '0')
SET @temp2 = isnull(substring(@permission2Char, @i, 1), '0')
IF (@temp1 != @temp2)
BEGIN
SET @returnNum = 1
RETURN @returnNum
END
SET @i = @i - 1
END
SET @returnNum = 0
RETURN @returnNum
END
GO