Sql Server 自定义进制转换
/*
@Str 转化进制的自定义字符 例如 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
@Str的长度为转化进制的长度
@value 将要转化的值 例如 37
*/
create FUNCTION [dbo].[BigIntToHexStr](@Str CHAR(200),@value BIGINT)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @seq CHAR(200)
DECLARE @result VARCHAR(50)
DECLARE @digit CHAR(1)
DECLARE @length int
SET @seq = @Str;--'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
set @length = len(@seq)
SET @result = SUBSTRING(@seq, (@value%@length)+1, 1)
WHILE @value > 0
BEGIN
SET @digit = SUBSTRING(@seq, ((@value/@length)%@length)+1, 1)
SET @value = @value/@length
IF @value <> 0
SET @result = @digit + @result
END
--RETURN SUBSTRING(@result,LEN(@result)-3,LEN(@result))
return right('0000'+cast(@result AS nvarchar(4)),4)
--RETURN @result
END
--declare @i int
--set @i=0
--declare @Str CHAR(200);
--set @Str='0123456789ABCDEFGHJKLMNPQRSTUVWXYZ'
--print cast (len(@Str) as varchar(50)) +'进制'
--while (@i<100)
--begin
-- print [dbo].[BigIntToHexStr](@Str,@i)+'--- '+cast(@i as varchar(50))
-- set @i=@i+1
--end