sql

sqlsever 如何将字符串'123456789'转换为'1234,5678,9'   即每隔四个字符加符号','

字符串也可能是'123'即转换为'123'

字符串也可能是'12345678915'即转换为'1234,5678,915'

(字符串长度是不固定的)

SQL GGBoy 发布于 2024-7-31 11:58 (编辑于 2024-7-31 13:02)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-7-31 12:00(编辑于 2024-7-31 12:00)

在单元格设置

image.png

  • GGBoy GGBoy(提问者) 您好,sql中完成的话怎么写啊该
    2024-07-31 12:02 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-7-31 12:07

image.png

  • GGBoy GGBoy(提问者) 字符串长度不固定
    2024-07-31 13:31 
  • Z4u3z1 Z4u3z1 回复 GGBoy(提问者) 这只是个例子。把前面的数字改成你的字段名
    2024-07-31 14:37 
  • GGBoy GGBoy(提问者) 回复 Z4u3z1 要是只是想按逗号分开不要小数点后面的呢
    2024-08-01 09:58 
最佳回答
0
华莉星宸Lv7资深互助
发布于2024-7-31 12:51

建议在数据库写个函数

对字符串进行截取

在拼接上就行了

  • GGBoy GGBoy(提问者) 不固定啊字符长度
    2024-07-31 13:32 
  • 华莉星宸 华莉星宸 回复 GGBoy(提问者) 你是4个字符就增加一个逗号?不需要管字符串的长度啊
    2024-07-31 14:04 
最佳回答
0
快乐星光Lv5中级互助
发布于2024-7-31 15:07

这个需要自定义函数,我写了一个,可以参考

ALTER FUNCTION [dbo].[fun_getstrEvery4]

(@str VARCHAR(500))

RETURNS VARCHAR(500)

AS

BEGIN

  

declare @len int,

@loopnum int=1,

@returnstr VARCHAR(500)=''

if len(@str) % 4 =0

begin

  set @len=len(@str)/4 -1

end else

begin

set @len=len(@str)/4

end

while @loopnum<=@len

  begin

set @returnstr=@returnstr+','+SUBSTRING(@str,@loopnum*4 + 1,4)

set @loopnum=@loopnum+1

end

RETURN left(@str,4)+@returnstr

END

image.png

  • 4关注人数
  • 283浏览人数
  • 最后回答于:2024-7-31 15:07
    请选择关闭问题的原因
    确定 取消
    返回顶部