[sql server]sql 2000 函数递归算法

--sql 2000 函数递归算法
if object_id('f_test') is not null drop function f_test
go
create function f_test(@dt int)
returns int
as
begin
declare @i int
select @i=@dt+isnull(dbo.f_test(number),0) from master..spt_values where type='p' and number=@dt-1
return @i
end
go
select dbo.f_test(10)

/*

-----------
55

(1 行受影响)

*/

 

--sql 2000 函数递归算法2
if object_id('f_test') is not null drop function f_test
go
create function f_test(@dt int)
returns numeric(10,4)
as
begin
declare @i numeric(10,4)
select @i=number+isnull(dbo.f_test(number),0)*0.7 from master..spt_values where type='p' and number=@dt-1
return @i
end
go
select number+dbo.f_test(number)*0.7 from master..spt_values where type='p' and number=3

---select (2+0.7)*0.7+3
/*
---------------------------------------
4.89000

(1 行受影响)

*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值