首页 > 解决方案 > 将 ASCII 转换为字符串

问题描述

我有一列包含 ASCII 连接数字,无论如何要将其转换为string(text)?例如,我114097102097101108在一列中,我希望下一列是“rafael”(从 ASCII 转换为文本)。转换链接http://www.unit-conversion.info/texttools/ascii/

标签: sqlsql-servertsql

解决方案


如果我理解正确,您可以使用递归 CTE:

with cte as (
      select '0' + convert(varchar(max), ascii(left(col, 1))) as rafael, stuff(col, 1, 1, '') as rest, 1 as lev, id, col
      from t
      union all
      select rafael + ' 0' + convert(varchar(max), ascii(left(rest, 1))), stuff(rest, 1, 1, ''), lev + 1, id, col
      from cte
      where rest <> ''
     )
select top (1) with ties id, col, rafael
from cte
order by row_number() over (partition by id order by lev desc);

是一个 db<>fiddle。


推荐阅读