我想在SQLserver中实现一个函数,能够将10进制转化为36进制

sdie 2007-06-12 04:49:32
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ,能不能实现,特此请教。
比如 135 对应的为3R
...全文
443 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yang_ 2007-06-12
  • 打赏
  • 举报
回复
lz,最后的才是对的

前面的搞反了
sdie 2007-06-12
  • 打赏
  • 举报
回复
太感谢了,看来写了这么多年程序还不到入门的程度 呵呵
惭愧呀
w75251455 2007-06-12
  • 打赏
  • 举报
回复
R3换十进制....
27*36+3=975
Yang_ 2007-06-12
  • 打赏
  • 举报
回复
好多小问题和大问题

--转换函数
alter function fn_10to36 (
@i int
)
returns varchar(30)
as
begin

declare @r varchar(30)
set @r=''

declare @m int
declare @s int
set @s=@i
while @s>=36
begin
set @m=@s % 36
set @r=case when @m<10 then cast(@m as varchar)
else cast(char(ascii('A')+@m-10) as varchar) end+@r
set @s=@s/36
end
if @s>0 or (@s=0 and @r='')
set @r=case when @s<10 then cast(@s as varchar)
else cast(char(ascii('A')+@s-10) as varchar) end+@r
return @r
end

go


Yang_ 2007-06-12
  • 打赏
  • 举报
回复
并成一个函数:
--转换函数
create function fn_10to36 (
@i int
)
returns varchar(30)
as
begin

declare @r varchar(30)
set @r=''

declare @m int
declare @s int
set @s=@i
while @s>36
begin
set @m=@s % 36
set @r=@r+case when @m<10 then cast(@m as varchar)
else char(ascii('A')+@m-10) end
set @s=@s/36
end
if @s>0
set @r=@r+case when @s<10 then cast(@s as varchar)
else char(ascii('A')+@s-10) end
return @r
end

go

Yang_ 2007-06-12
  • 打赏
  • 举报
回复
--写成了两个函数,看起来清晰点

--一位转换函数
create function fn_36 (
@i int
)
returns varchar(1)
as
begin
return (case when @i<10 then cast(@i as varchar)
else char(ascii('A')+@i-10) end)
end
go


--转换函数
create function fn_10to36 (
@i int
)
returns varchar(30)
as
begin

declare @r varchar(30)
set @r=''

declare @m int
declare @s int
set @s=@i
while @s>36
begin
set @m=@s % 36
set @r=@r+dbo.fn_36(@m)
set @s=@s/36
end
if @s>0
set @r=@r+dbo.fn_36(@s)
return @r
end

go

--调用测试
select dbo.fn_10to36(135)
--结果
------------------------------
R3

(1 行受影响)

select dbo.fn_10to36(65535)
--结果
------------------------------
FKE1

(1 行受影响)

sdie 2007-06-12
  • 打赏
  • 举报
回复
呵呵 请大家帮忙
Yang_ 2007-06-12
  • 打赏
  • 举报
回复
有点意思

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧