备案 控制台
学习
实践
活动
专区
工具
TVP
写文章
专栏首页 高级程序设计 基于SQL的10进制转36进制函数
0 0

海报分享

原创

基于SQL的10进制转36进制函数

在数据库应用编码中,通常需要对某些数据进行编码,常用编码规则为基于数值的十进制编码,基于数字与字符的十六进制编码,如果数据量再大一些,则十六进制不能满足,由于在十六进制中,英文字符只用了6个(ABCDEF),而英文字符有26个,因此可以构造11(10+1(A))- 16(10+6(ABCDEF))--36(10+26(AB...XYZ))等进制编码方式,以下给出36进制SQL 函数编码。

ALTER FUNCTION [dbo].[Convert10To36]

(

@val int

)

RETURNS nvarchar(6)

AS

BEGIN

DECLARE @X36 varchar(36);

DECLARE @result nvarchar(6);

DECLARE @idx int;

set @X36 = '0123456789ABCDEFGHIJHKLMNOPQRSTUVWXYZ';

set @result = '';

while (@val >= 36)

begin

set @idx=@val / 36 ;

set @result = @result + substring(@X36,@idx +1,1) ;

set @val = @val - @idx * 36;

end

if (@val >= 0)

begin

set @result = @result + substring(@X36,@val + 1,1);

end

return @result;

END

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。