求用一条完整语句解码一个ascii码串,转换为字符串

Neo_whl 2013-09-12 05:14:19
‘105 108 111 118 101 121 111 117’
每三个数字是一个ascii码,每个ascii之间有个空格,要求最后要达到如下效果:
比如: i love you
就是要所有字母显示在一行
...全文
116 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Neo_whl 2013-09-13
  • 打赏
  • 举报
回复
嗯嗯,方法很多,还是表示感谢分享!
-Tracy-McGrady- 2013-09-13
  • 打赏
  • 举报
回复

--昨天下班了没来得及给你回复,既然写了就贴一下吧
declare @str varchar(100)
set @str='105 108 111 118 101 121 111 117'
set @str=REPLACE(@str,' ',',')+','
declare @s varchar(5)
declare @str2 varchar(100)
set @str2=''
while CHARINDEX(',',@str)>0
begin
  set @s=LEFT(@str,3)
  set @str2=@str2+CHAR(@s)
  set @str=RIGHT(@str,LEN(@str)-4)
end
select @str2 as lm
lm
----------------------------------------------------------------------------------------------------
iloveyou

(1 行受影响)
Neo_whl 2013-09-12
  • 打赏
  • 举报
回复
感谢2,3楼前辈,2楼大牛方法高深了,有一个地方用法我还得琢磨下,三楼大牛做法,还是比较容易懂,不过要是后面加下空格就完美了,感谢,感谢,小弟好奇而已
Shawn 2013-09-12
  • 打赏
  • 举报
回复
--自动拆成单词,就不好弄了.呵呵
DECLARE @str VARCHAR(255), @sql VARCHAR(MAX)
SET @str = '105 108 111 118 101 121 111 117'
SET @sql = 'SELECT CHAR(' + REPLACE(@str,' ',') + CHAR(') + ')'
EXEC(@sql)
/*
iloveyou
*/
Andy__Huang 2013-09-12
  • 打赏
  • 举报
回复
DECLARE @XmlDocumentHandle int
declare @XmlDocument nvarchar(4000)
set @XmlDocument='105 108 111 118 101 121 111 117'
set @XmlDocument=REPLACE(@XmlDocument,' ','</item><item>')
set @XmlDocument=N'<Root><item>'+@XmlDocument+'</item></Root>'

select o.value('.','int') 'item'
into #temp
from (select cast(@XmlDocument as xml) 'x') t
cross apply x.nodes('/Root/item') x(o)

declare @s varchar(8000) 
set @s=''
select @s=@s+char(item)
from #temp
print @s

/*
iloveyou
*/
IEEE_China 2013-09-12
  • 打赏
  • 举报
回复
一句话是写不完的。 用函数处理吧。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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