SQL编写存储过程计计算1!+2!+3!+…+N!
2个回答
展开全部
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
不雹扮过这类源携灶东西在程序中计算要比在数据库中快的隐哪多。
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
不雹扮过这类源携灶东西在程序中计算要比在数据库中快的隐哪多。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
来自:求助得到的回答
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询