假设下面的代码在过程或触发器中。使用下面的代码,我可以将字符串“name”转换为字符,然后将每个字符转换为ascii代码,将其合并在一起并存储在变量“result”中
例如:假设name是“hello”,那么它看起来像“104101111”,其中h=104,e=101,l=108,o=111。
因为我搜索了cte的8.0+版本,所以我想知道是否有人能帮我做我需要做的事情,这样它也可以在旧版本上工作,也许不用cte之类的。谢谢您
declare name varchar(15);
declare result decimal(64,0);
with recursive cte as (
select name as name, left(name, 1) as val, 1 as idx
union all
select name, substring(name, idx + 1, 1), idx + 1
from cte
where idx < char_length(name)
)
select group_concat(ascii(val) order by idx separator '') ascii_word from cte into result;
1条答案
按热度按时间6yt4nkrj1#
如果你有一个数字表,你可以用
join
:您可以针对您的问题将列表扩展到合理的长度,也可以在数据库中维护一个包含足够多行的数字表。也可以使用现有表,代码如下: