SQL Server 2008 で INT を BASE32 文字列にエンコードしようとしています。
組み込み関数またはおそらくカスタム関数の提案はありますか?
ありがとう
SQL Server 2008 で INT を BASE32 文字列にエンコードしようとしています。
組み込み関数またはおそらくカスタム関数の提案はありますか?
ありがとう
これにはデバッグが必要ですが、近いはずです。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
人間が読める base32 を探している場合は、Crockford のサイトをチェックしてください: http://www.crockford.com/wrmg/base32.html
Dell サービス タグのように見えます -- 1 0 IL などの混乱を避けるため...
いくつかの実装を次に示します。
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