Sql Server 自定义进制转换

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值