--参数描述:@StrHex36 被转换36进制字串
--测试方法:SELECT dbo.ConvertHex36To10('A6ZQ2')
CREATE FUNCTION dbo.ConvertHex36To10
(@StrHex36 VARCHAR(100))
RETURNS INT
AS
BEGIN
DECLARE @StrHex36Len INT --被转换36进制字串的长度
DECLARE @Base36To10 INT --每位36进制基数对应的10进制数据大小
DECLARE @Index INT --字符串索引
DECLARE @Hex10 INT --被返回10进制数据
DECLARE @Base36 VARCHAR(1)--36进制基数
SET @Hex10=0
SET @StrHex36Len=LEN(@StrHex36)
SET @Index=1
WHILE @Index<=@StrHex36Len
BEGIN
SET @Base36=SUBSTRING(@StrHex36,@Index,1)
SET @Base36To10=CHARINDEX(@Base36,'0123456789ABCDEFGHIJKLNMOPQRSTUVWXYZ')-1
SET @Hex10=@Hex10+@Base36To10*POWER(36,@StrHex36Len-@Index)
SET @Index=@Index+1
END
RETURN @Hex10
END