为sql一字段值中每个特定字符前的最后一个数字加1怎么处理? 10
sql中如有一个字段值为:1788987565327、768374872394903、21437238740213483874629、23412341234252345(...
sql中如有一个字段值为:1788987565327、768374872394903、21437238740213483874629、23412341234252345(这是存储于一个字段值中的一串字符串)。其中,顿号间隔的每一组数字位数和尾数不定,现在要使这个字段值中每处顿号前的那一个数字(即7、3、9、5)都分别加1,变成8、4、0、6,使整个结果输出成:1788987565328、768374872394904、21437238740213483874620、23412341234252346。注意其中第三个顿号前的数,从9加1后,输出成0,而不是10。多谢啦。
展开
2个回答
展开全部
declare @a varchar(2048),@b varchar(1024),@c varchar(1024)=''
declare @d varchar(2)
set @a='1788987565327、768374872394903、21437238740213483874629、23412341234252345' ---给a 赋个值
while CHARINDEX('、',@a)>=0
begin
if CHARINDEX('、',@a)=0
begin
set @d=RIGHT (@a,1)+1
if @d='10'
set @d='0'
set @b=LEFT(@a,LEN(@a)-1)+@d
if @c=''
set @c=@b
set @c=@c+'、'+@b
break
end
if CHARINDEX('、',@a)>0
begin
set @b=SUBSTRING(@a,1,CHARINDEX('、',@a)-1)
set @d=RIGHT(@b,1)+1
if @d='10'
set @d='0'
set @a=SUBSTRING(@a,CHARINDEX('、',@a)+1,LEN(@a)-CHARINDEX('、',@a))
set @b=LEFT(@b,LEN(@b)-1)+@d
set @c=@c+'、'+@b
end
end
select substring(@c,2,LEN(@c)-1) as [结果]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询