前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于SQL的10进制转36进制函数

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

原创
作者头像
鲁郭大侠
修改2020-03-06 09:49:32
1.8K0
修改2020-03-06 09:49:32
举报
文章被收录于专栏:高级程序设计高级程序设计

在数据库应用编码中,通常需要对某些数据进行编码,常用编码规则为基于数值的十进制编码,基于数字与字符的十六进制编码,如果数据量再大一些,则十六进制不能满足,由于在十六进制中,英文字符只用了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 删除。

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档