十六进制转化为十进制

--引用 
CREATE   FUNCTION   dbo.f_hex_dec(@s   varchar(16)) 
RETURNS   bigint 
AS 
BEGIN 

DECLARE   @i   int,@result   bigint 
SELECT   @i=0,@result=0,@s=RTRIM(LTRIM(UPPER(REVERSE(@s)))) 
WHILE   @i <LEN(@s) 
BEGIN 
IF   SUBSTRING(@s,@i+1,1)   not   between   '0 '   and   '9 '   and   SUBSTRING(@s,@i+1,1)   not   between   'A '   and   'F ' 
BEGIN 
SELECT   @result=0 
break 
END 
SELECT   @result=@result+(CHARINDEX(SUBSTRING(@s,@i+1,1), '0123456789ABCDEF ')-1)*POWER(16,@i),@i=@i+1 
END 
RETURN   @result 
END 
GO 


-- 
select   dbo.f_hex_dec( 'A ') 


--res 

10
快乐渡过每一天,减肥坚持每一天