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

Dell サービス タグのように見えます -- 1 0 IL などの混乱を避けるため...

于 2012-02-07T15:25:50.613 に答える