SQL 字符串转成数字相加




---数字字符串累加
create  function [dbo].[ZGetQty](@UDF02 varchar(40)) returns decimal
as

BEGIN      --'121+2+3+23+5+7+878' 字符串 累计相加
 declare @A varchar(255)
 declare @num decimal,@count int--出现'+'次数
 set @num=0
 set @A=@UDF02                                                             --select top 1 @A=UDF02 from COPTH WHERE UDF02=@UDF02
select @count=LEN(@A)-LEN(replace(@A,'+','')) --统计字符'+'出现次数
if ( @count<=0 AND LEN(@count)>0)
    begin
         SET @num= @A  end
           iF(@count >0) --CHARINDEX('+',@A)
                 begin
                   declare @int int
                      set @int=0  -- 控制循环次数==相加次数
                      while @int<@count
                    
                           begin                        
                             set    @num=@num+SUBSTRING(@A,1,CHARINDEX('+',@A,0)-1)
                          set @A=SUBSTRING(@A,CHARINDEX('+',@A,1)+1,LEN(@A)-CHARINDEX('+',@A,1)+1)
                          set @int= @int+1                          
                             end
                          if(@int>0 and @int=@count)                             
                             set @num=@num+@A                        
                  end
                      IF( @A='')
                         begin  set @num=0  end
 
return @num
end




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值