You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何实现指定次数的递归乘法计算

实现方案

核心逻辑说明

你需要的迭代计算逻辑可以通过SQL Server的递归公共表表达式(CTE)实现,对应逻辑:

  • 首次计算:A * B,对应第1次结果
  • 后续每轮计算:上一轮结果 * A,共执行7轮迭代
  • 输出保留1位小数,使用逗号作为小数点分隔符

完整实现代码

DECLARE @A DECIMAL(18,2) = 1.65,
        @B DECIMAL(18,2) = 10,
        @IterationCount INT = 7;

WITH RecursiveCalc AS (
    -- 锚点成员:第一次计算结果
    SELECT 1 AS n,
           @A * @B AS res
    UNION ALL
    -- 递归成员:每次用上一次结果乘A,直到达到迭代次数
    SELECT n + 1 AS n,
           res * @A AS res
    FROM RecursiveCalc
    WHERE n < @IterationCount
)
-- 格式化输出为逗号小数点格式
SELECT n,
       REPLACE(CAST(ROUND(res,1) AS VARCHAR(20)), '.', ',') AS result
FROM RecursiveCalc;

输出结果

运行上述代码得到的结果和预期序列完全一致:

nresult
116,5
227,2
344,9
474,1
5122,2
6201,7
7332,9

注意事项

  • 如果需要调整迭代次数,直接修改@IterationCount变量的取值即可
  • 递归CTE默认最大递归层数为100,如果迭代次数超过100,需要在查询末尾加OPTION (MAXRECURSION 0)解除限制(0代表无限制)

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:06:06