--转换函数
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
并成一个函数:
--转换函数
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
--一位转换函数
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