SQL编写存储过程计计算1!+2!+3!+…+N!

 我来答
wang_xtk
2012-12-19 · 超过58用户采纳过TA的回答
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:133万
展开全部
create procedure sp_getval @n int
as
declare @i int,@j int,@val int,@sval int
set @i=1
set @val=0
while @i<=@n
begin
set @j=@i
set @sval=1
while @j>1
begin
set @sval=@sval*@j
set @j=@j-1
end
set @val=@val+@sval
set @i=@i+1
end
return @val

go

不雹扮过这类源携灶东西在程序中计算要比在数据库中快的隐哪多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lizhiyu211
2012-12-19 · 超过23用户采纳过TA的回答
知道答主
回答量:127
采纳率:0%
帮助的人:14.7万
展开全部
drop procedure p_test
go
CREATE procedure p_test(@n int)
as
begin
declare @i int -- 外层顷颤循环变量
declare @j int -- 内层循环变量郑乎冲
declare @c varchar(2000) -- 结果字符串
declare @totalc varchar(2000) --内层循环拼接字符串
select @i=1
select @j=1
select @c = ''
if @n =0
begin
select '1' as [0!]
end
else
while @i<=@n
begin
select @j=@i
select @totalc = convert(char,@j)
while @j<>1
begin
select @totalc = rtrim(@totalc)+'*'+convert(char,(@j-1))
select @j=@j-1
end
select @c=rtrim(@c)+'+'+rtrim(@totalc)
select @i = @i+1
end
select @c='喊歼select '+substring(@c,2,len(@c))
execute(@c)
end
来自:求助得到的回答
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式