2016-11-20 122 views
1

使用SQL服务器,编写一个while循环来计算和打印所有奇数非负整数的f(x)= 3x的函数值< = 25 (1,3,5,... 23,25)。SQL用while循环解决函数

这是我写了到目前为止

My Query

这是结果我得到

My Results

所以理论上我应该得到45640时@x = 25

我在这里错了什么?

回答

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 
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