create table tb(col varchar(20)) insert tb select '123456789'select top 20 id=identity(int,1,1) into # from syscolumns aselect sum(cast(col as int)) ss from ( select col=substring(a.col,b.id,1) from tb a,# b where substring(a.col,b.id,1)<>'' ) tdrop table tb,#
declare @str varchar(100), @p int set @str = '123456789'set @p = len(@str) while @p > 1 begin set @str = stuff(@str, @p, 0, '+') set @p = @p - 1 endexec ('select ' + @str)
Create function sum_zifu(@t varchar(200)) returns int as begin declare @s int declare @sum int set @s=1 set @sum=0 while @s<=len(@t) Begin set @sum=@sum+Convert(int,substring(@t,@s,1)) set @s=@s+1 End return @sum Endselect dbo.sum_zifu('123456789') drop function sum_zifu
insert tb select '123456789'select top 20 id=identity(int,1,1) into # from syscolumns aselect sum(cast(col as int)) ss
from
(
select col=substring(a.col,b.id,1)
from tb a,# b
where substring(a.col,b.id,1)<>''
) tdrop table tb,#
set @str = '123456789'set @p = len(@str)
while @p > 1
begin
set @str = stuff(@str, @p, 0, '+')
set @p = @p - 1
endexec ('select ' + @str)
returns int
as
begin
declare @s int
declare @sum int
set @s=1
set @sum=0
while @s<=len(@t)
Begin
set @sum=@sum+Convert(int,substring(@t,@s,1))
set @s=@s+1
End
return @sum
Endselect dbo.sum_zifu('123456789')
drop function sum_zifu