Sql While循环作为Select语句中的计算字段

Sql While循环作为Select语句中的计算字段,sql,for-loop,while-loop,newtons-method,Sql,For Loop,While Loop,Newtons Method,我试图实现一个利用牛顿方法的计算场。我有f(x)和f'(x),当我以静态参数“while begin”的形式单独运行一次计算时,计算工作正常。但是,我需要牛顿方法在SELECT语句中为查询中自己列中的每一行运行 “完美世界”伪代码如下: DECLARE @x AS Float DECLARE @count AS INT = 1 SELECT Col1 ,Col2 ,Col3 , Set @x = col1 Then DO ( FOR @cou

我试图实现一个利用牛顿方法的计算场。我有f(x)和f'(x),当我以静态参数“while begin”的形式单独运行一次计算时,计算工作正常。但是,我需要牛顿方法在SELECT语句中为查询中自己列中的每一行运行

“完美世界”伪代码如下:

 DECLARE @x AS Float
 DECLARE @count AS INT = 1

 SELECT
   Col1
  ,Col2
  ,Col3
  ,  Set @x = col1 
     Then DO (
       FOR @count = 1 to 100 
           SET @x = @x - f(@x)/f'(@x)
           SET @count = @count + 1  
       NEXT @count ) 
      OUTPUT @x   AS 'Newtons Method' 
例如:f(@x)=和f'(@x)可以定义为任意方程。i、 ef(@x)=功率(@x,1/2)和f'(@x)=功率(@x/2,-1/2)

输出的形式如下:

 col1    col2     col3     Newtons Method
 float    float    float            float
  .           .            .                 .
  .           .            .                 .
  .           .            .                 . 
用于查询中的所有记录

限制1)我没有权限在数据库中创建存储的进程或函数

限制2)我必须仅使用TSQL完成此任务


这可能吗

哪里有
f(x)和f'(x)
?还有,输出应该是什么样的?使用附加信息更新有两种常见的方法来避免SQL Server中的显式循环:数字表和递归CTE。在您的例子中,
@x
的下一个值以一种不明显的方式取决于先前的结果,因此递归CTE可能是这里唯一的方法。递归CTE似乎是一个攻击计划。那么,如何为每个记录部署递归CTE呢?