SQL使用While循环解决函数

时间:2016-11-20 20:35:46

标签: sql sql-server tsql while-loop

使用SQL服务器,写一个while循环来计算和打印f(x)= 3x& 3 -2X ^ 2 + 15的函数值,用于所有奇数非负整数< = 25.(1,3,5 ,...... 23,25)。

这是我到目前为止所写的内容

My Query

这是我得到的结果

My Results

所以理论上我应该在@x = 25

时得到45,640

我在这里出错了什么?

2 个答案:

答案 0 :(得分:1)

您可以使用递归cte(而不是使用while循环)生成所有奇数< = 25,然后对这些数字应用函数。

with oddnums_cte as (select 1 num
                     union all
                     select num+2 from oddnums_cte where num < 25)
select num, (3*power(num,3))-(2*power(num,2))+15 as function_value
from oddnums_cte

答案 1 :(得分:1)

您必须使用power功能,如下所示

Declare @SUMSQUARE Integer, @x Integer
SET @X = 1

WHILE (@X <= 25)
BEGIN

SELECT @SUMSQUARE =  (3*power(@X,3))-(2*power(@X,2))+15
PRINT @SUMSQUARE
SET @X = @X + 2

END