求一个sql,望仁兄们帮助

jkxexx200 2012-02-22 03:41:39
如何在sql server中将一个ASCII 16进制的字符串装换为对应字符。
Declare @str varchar(50)
set @str='414243313233344B4A'

输出对应字符:ABC1234KJ


...全文
53 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jkxexx200 2012-02-22
  • 打赏
  • 举报
回复
正解,感谢兄弟。
百年树人 2012-02-22
  • 打赏
  • 举报
回复
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
) t

select @result as result
/**
result
--------------------------------------------------
ABC1234KJ

(1 行受影响)
**/
jkxexx200 2012-02-22
  • 打赏
  • 举报
回复
自己顶下。

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧