请教一下,一串字符串,我该怎么隔一位加一个分号呢?

qa1994279 2022-11-23 11:20:23

例如我有一个字符串 '123456789'  我想将其处理为 '1,2,3,4,5,6,7,8,9' 这个格式, 请问可以用什么方法或者函数处理呢?

...全文
114 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 版主 2022-11-24
  • 打赏
  • 举报
回复

DECLARE @s VARCHAR(MAX)
SET @s='123456789'

SELECT STUFF(
    (SELECT ','+SUBSTRING(@s,number,1) FROM MASTER.dbo.spt_values AS s WHERE s.type='P' AND s.number>0 AND s.number<=LEN(@s)
FOR XML PATH(''))
,1,1,'')
/*
1,2,3,4,5,6,7,8,9
*/
qa1994279 2022-11-24
  • 举报
回复
@吉普赛的歌 谢谢大佬
weixin_52434911 2022-11-23
  • 打赏
  • 举报
回复

string .for char = string[i]
stringbuild str = new stringbuild()
srt.append(char).append(",)

幸福感奇差 2022-11-23
  • 打赏
  • 举报
回复

walk the string,然后使用 string_agg 拼接字符串
假设有一个序号表 serial,字段 id,值是 1~n(n 取大一点,超过最大字符串长度即可)

select col, string_agg(substr, ',') concat
from
(-- 全连接,字符串转单个字符
select t1.col, substring(t1.col, t2.id, 1) substr
from
(select '123456789' col) t1, serial t2
where t2.id between 1 and len(t1.col)
) t
group by col

qa1994279 2022-11-24
  • 举报
回复
@幸福感奇差 谢谢大佬,请问string_agg 函数是不是2008版中还没有的吗?提示不是可以识别的内置函数
qa1994279 2022-11-24
  • 举报
回复
@qa1994279 谢谢大佬,我试了下拿xml拼接了

34,576

社区成员

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

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