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

发布于 2024-11-06 04:48:42 字数 86 浏览 0 评论 0 原文

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

有内置函数或自定义函数的建议吗?

谢谢

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

仅此而已 2024-11-13 04:48:42

很确定这需要一些调试,但应该接近。我从 ac# 函数翻译过来,发现它可以将 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

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
ㄖ落Θ余辉 2024-11-13 04:48:42

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

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

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...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文