分享错误,学习生活

SQL SERVER 10进制转换36进制

--参数描述:@Hex10 被转换10进制数字
--测试方法:SELECT [dbo].[ConvertHex10To36](17122394)

CREATE FUNCTION [dbo].[ConvertHex10To36]
(@Hex10 INT)  
RETURNS VARCHAR(100)
AS
--DECLARE @Hex10 INT SET @Hex10=17122394 --注释AS(包括AS)以上所有行,将代码最后的RETURN换成PRINT,并设该行为断点,按F11开始调试
BEGIN
  DECLARE @StrHex36 VARCHAR(100)--返回36进制表示的结果
  DECLARE @Remainder INT--余数
  DECLARE @Base36 VARCHAR(1)

  SET @Remainder=0
  SET @StrHex36=''
 
  WHILE @Hex10>=36 --
    BEGIN
     SET @Remainder=@Hex10%36 
     SET @Hex10=@Hex10/36 
     SET @Base36=SUBSTRING('0123456789ABCDEFGHIJKLNMOPQRSTUVWXYZ',@Remainder+1,1) 
     SET @StrHex36=@Base36+@StrHex36
    END

  SET @Remainder=@Hex10%36 
  SET @Base36=SUBSTRING('0123456789ABCDEFGHIJKLNMOPQRSTUVWXYZ',@Remainder+1,1) 
  SET @StrHex36=@Base36+@StrHex36
   --PRINT @StrHex36
     RETURN  @StrHex36
END

竖式除法计算36进制结果

暂无评论

发表评论

电子邮件地址不会被公开。