1

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

内置功能或自定义功能的任何建议?

谢谢

4

3 回答 3

1

很确定这需要一些调试,但应该很接近。我从我发现将base10转换为base32的ac#函数翻译过来。

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
于 2011-05-11T05:50:59.583 回答
1

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

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

于 2012-02-07T15:25:50.613 回答