Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE FUNCTION dbo.Decode (@encodedId NVARCHAR(50))
- RETURNS INT
- AS
- BEGIN
- DECLARE @alphabet nvarchar(36) = 'abcdefghijklmnopqrstuvwxyz0123456789',
- @base INT,
- @decodedId INT = 0,
- @len INT,
- @pos INT = 1,
- @letter NVARCHAR(10)
- SET @len = LEN(@encodedId)
- SET @base = LEN(@alphabet)
- WHILE(@pos <= @len)
- BEGIN
- SET @letter = SUBSTRING(@encodedId, @pos, 1)
- SET @decodedId = (@decodedId * @base) + CHARINDEX(@letter, @alphabet)
- SET @pos += 1
- END
- RETURN @decodedId
- END
- GO
- CREATE FUNCTION dbo.Encode (@id INT)
- RETURNS NVARCHAR(50)
- AS
- BEGIN
- DECLARE @alphabet nvarchar(36) = 'abcdefghijklmnopqrstuvwxyz0123456789',
- @base int,
- @pos int,
- @result nvarchar(50) = '',
- @encodedId nvarchar(50) = ''
- SET @base = LEN(@alphabet)
- IF(@id = 0)
- BEGIN
- SET @result = SUBSTRING(@alphabet, 1, 1)
- END
- ELSE
- BEGIN
- WHILE(@id > 0)
- BEGIN
- SET @pos = @id % @base
- SET @encodedId += SUBSTRING(@alphabet, @pos, 1)
- SET @id = @id / @base
- END
- SET @result = REVERSE(@encodedId)
- END
- RETURN @result
- END
- GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement