如何在sql server 2008中使用base32编码int

时间:2011-05-11 04:53:32

标签: sql-server encoding base32

我希望在SQL Server 2008中编码INT到BASE32字符串。

内置函数或自定义函数的任何建议?

由于

3 个答案:

答案 0 :(得分:1)

很确定这需要一些调试,但应该关闭。我从c#函数翻译,我发现将base10转换为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

答案 1 :(得分:1)

如果你正在寻找人类可读的base32,请查看Crockford的:http://www.crockford.com/wrmg/base32.html

看起来像戴尔服务标签 - 避免在1 0 I L等之间混淆......

答案 2 :(得分:0)