如何在sql server中将一个ASCII 16进制的字符串装换为对应字符。
Declare @str varchar(50)
set @str='414243313233344B4A'输出对应字符:ABC1234KJ

解决方案 »

  1.   

    Declare @str varchar(50),@result varchar(50)
    set @str='414243313233344B4A'select 
      @result=isnull(@result,'')+
      char(left(col,1)*16
      +case when isnumeric(right(col,1))=0 then ascii(right(col,1))-55 else right(col,1) end
      )
    from(
    select substring(@str,number*2+1,2) as col
    from master..spt_values
    where type='P' and number<len(@str)/2
    ) tselect @result as result
    /**
    result
    --------------------------------------------------
    ABC1234KJ(1 行受影响)
    **/