sql - 将 ASCII 转换为字符串
问题描述
我有一列包含 ASCII 连接数字,无论如何要将其转换为string(text)
?例如,我114097102097101108
在一列中,我希望下一列是“rafael”(从 ASCII 转换为文本)。转换链接http://www.unit-conversion.info/texttools/ascii/
。
解决方案
如果我理解正确,您可以使用递归 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。
推荐阅读
- c# - InverseProperty 的 EF Core 迁移问题
- php - 如何在 laravel 中按时间明智地验证名称
- jquery - 当描述如下时,Bootstrap 的轮播指示器位于图像底部
- python - 使用 python 的 rdflib 框架将三元组从列表添加到图形
- shopify - 如何在 Liquid/Shopify 中过滤特定日期之后的订单?
- gulp - 在 gulp 文件中只调用最后一个回调
- python - 自定义数据生成器 keras 模型预期 2 个数组,但收到 1 个
- excel - 建立与 Excel 文件的连接时无法识别的数据库格式
- powershell - 将 Excel 文件中的日期与 Get-Date 进行比较
- android - 为什么位置显示未知,在cleverTap 用户个人资料仪表板上显示未知