1

i am looking to encode an INT to BASE32 string in SQL Server 2008.

Any suggestions of built-in function or perhaps a custom function?

Thanks

android-developer
  • 1,574
  • 4
  • 20
  • 27

3 Answers3

1

Pretty sure this will need some debugging but should be close. I translated from a c# function I found that converts base10 to base32.

CREATE FUNCTION dbo.Base10toBase32 (@pInput int)
RETURNS varchar(100)
AS
BEGIN
    Declare @pSet char(32)
    Declare @pRslt varchar(100)
    Declare @pRmdr int
    Declare @pPos int

    SET @pSet = '0123456789ABCDEFGHIJKLMNOPQRSTUV'
    SET @pPos = @pInput

    WHILE @pPos > 0
    BEGIN
        SET @pRmdr = @pPos % 32
        SET @pPos = @pPos / 32
        SET @pRslt = SubString(@pSet,@pRmdr+1,1) + @pRslt
    END

    RETURN @pRslt
END
RThomas
  • 10,702
  • 2
  • 48
  • 61
1

If you're looking for human-readable base32, check out Crockford's: http://www.crockford.com/wrmg/base32.html

Looks like a Dell service tag -- avoids confusion between 1 0 I L etc...

Jud H.
  • 11
  • 1
0

Here are a few implementations:

http://dpatrickcaldwell.blogspot.com/2009/05/converting-decimal-to-hexadecimal-with.html

http://snippets.dzone.com/posts/show/707

http://geekswithblogs.net/bbiales/archive/2009/05/04/131732.aspx

Garett
  • 16,632
  • 5
  • 55
  • 63
  • Hmmmm, wish I would have seen this link before I translated my answer below. It looks a little more elegant and useful to boot since it does other bases. http://geekswithblogs.net/bbiales/archive/2009/05/04/131732.aspx – RThomas May 11 '11 at 05:56