编写计算n!(n=20)的SQL语句,并显示计算结果

╮(╯_╰)╭... ╮(╯_╰)╭ 展开
 我来答
大野瘦子
高粉答主

2019-10-15 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.9万
展开全部

语句为:  

with temp1(col1) as

(select 1 col1

union all

select col1+1 col1

from

temp1

where col1+1<=20

)

select exp(sum(log(col1)))

from temp1;

扩展资料:

注意事项

sql中没有乘法函数,所以一般用:

logx+logy=logx*y

实现方式,先对记录取对数log(),然后sum聚合,最后exp,结果就是记录相乘的结果。

SUM函数的语法是:

SELECT SUM(expression )

FROM tables

WHERE predicates;

表达式可以是一个数值字段或公式。

例如,可能想知道合并全体员工的薪金总额美元以上,其薪酬是25,000/年

SELECT SUM(salary) as "Total Salary"

FROM employees

WHERE salary > 25000;

twvampire
2015-09-24 · TA获得超过3620个赞
知道大有可为答主
回答量:3029
采纳率:76%
帮助的人:3008万
展开全部

循环求乘法?

 

要求加分,,,

sqlserver2005及以上版本可用
 
with temp1(col1) as
(select 1 col1
union all
select col1+1 col1
from
temp1
where col1+1<=20
)
select exp(sum(log(col1)))
from temp1;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
676950180
推荐于2018-03-21 · TA获得超过115个赞
知道小有建树答主
回答量:194
采纳率:100%
帮助的人:120万
展开全部
Declare @a decimal(28, 0)
Set @a = 1
Select @a = @a * RecID
From (
Select Top 20 name, ROW_NUMBER() Over (Order By name) As RecID
From syscolumns a) b

Select @a
--2432902008176640000
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ok靈
2018-07-10
知道答主
回答量:8
采纳率:0%
帮助的人:7736
展开全部
declare @n int,@sum bigint
select @n=1,@sum=1
while @n<=20
begin
select @sum=@n*@sum
select @n=@n+1
end
select @sum
go
n!=2432902008176640000
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式