RETURNS NVARCHAR(50)
AS BEGIN
DECLARE @result NVARCHAR(50) = ''
DECLARE @counter INT = 1, @char NVARCHAR(1) = ''
WHILE(@counter <= LEN(@str))
BEGIN
SELECT @char = SUBSTRING(@str, @counter, 1);
IF(ISNUMERIC(@char) = 0)
BEGIN
SELECT @result = @result + @char
END
ELSE IF(@counter % 2 = 0) -- even number
BEGIN
SELECT @result = @result + Char(64 + @char + @counter)
END
ELSE IF(@counter % 2 = 1) -- odd number
BEGIN
SELECT @result = @result + Char(64 + 26 - (@char + @counter) + 1)
END
SELECT @counter = @counter + 1
END
RETURN @result
END
-- To test function, execute below query
select dbo.fnTestKeyGen('235679')
0 Comments