---数字字符串累加
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