我现在想做一个函数,比如:我想求n个数的和,n是一个不固定的数,这个函数就得写成sum(n1,n2,n3,…………)
怎么写这个函数
怎么写这个函数
解决方案 »
- sql2000使用ROW_NUMBER
- 我有一个access文件 50万条数据,想批量导入sql
- SQL Server 错误20736 待高手
- sqlerver中列名为[count] []这个大括号怎么也去不了?
- 数据库还原时碰上的非常郁闷问题:提交到“事件探查器”的SQL语句跟在“查询分析器”中的执行结果不一致!
- 高分解决一个简单sql server 2000的for xml语句问题(急)
- 这样的一个存储过程怎么写?
- 存储过程怎么调?
- 会者不难:将整型数转换成字符串的问题(急)
- 用代码实现从SQL Server导数据到dbf文件,为什么名字长度超过10位的字段名字自动变成了10位?????
- 有点怪的问题……
- 愁死我了,(一个函数n参数)
select @var ='1,2,3,4,5,6,',@sum=0while PATINDEX ('%[^0-9]%',@var)>0
select @sum=@sum+substring(@var,0,PATINDEX ('%[^0-9]%' , @var)),
@var=substring(@var,PATINDEX ('%[^0-9]%',@var)+1,len(@var))select @sum,@var
declare @s varchar(100)
declare @s1 varchar(100)
declare @i smallint
declare @len smallint
declare @sum smallint
set @sum=0
set @s1=''
set @s='12,32,52,72,19,'
set @len=len(@s)
set @i=0
while @i<=@len
begin
if(substring(@s,@i,1)=',')
begin
set @sum=@sum+cast(@s1 as int)
set @s1=''
end
else
begin
set @s1=@s1+substring(@s,@i,1)
end
set @i=@i+1
end
print cast(@sum as int)-------
187你把這段語句放入函數中,其中,@s為輸入參數
returns int
as
begin
--declare @s varchar(100)
declare @s1 varchar(100)
declare @i smallint
declare @len smallint
declare @sum smallint
set @sum=0
set @s1=''
--set @s='12,32,52,72,19,'
set @len=len(@s)
set @i=0
while @i<=@len
begin
if(substring(@s,@i,1)=',')
begin
set @sum=@sum+cast(@s1 as int)
set @s1=''
end
else
begin
set @s1=@s1+substring(@s,@i,1)
end
set @i=@i+1
end
return(@sum)
--print cast(@sum as int)
end
select dbo.sum_data('12,32,52,72,19,')
-----------
187(1 row(s) affected)