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

动态查询中WHILE循环SQL代码的中文翻译及技术问询请求

含WHILE循环的动态SQL查询代码中文翻译

我把这段通过WHILE循环动态构建查询语句的T-SQL代码做了翻译,完整保留了代码结构、技术术语和逻辑细节,以下是原代码和带中文注释的版本:

原代码

BEGIN 
    DECLARE @sqlQuery VARCHAR(MAX) 
    SET @sqlQuery ='Select Style_Color, Style_Color_Desc as Description, RPT, Weeks, ' 
    DECLARE @cnt INT = 1 
    DECLARE @TblCount NVARCHAR(1000) = (SELECT COUNT(ID) FROM table_Name) 
    WHILE @cnt <= @TblCount 
    BEGIN 
        SET @sqlQuery = @sqlQuery + 'max(CASE WHEN Cluster_ID = (Select STORE_ID from Table_Name where id= '+@cnt+') then CAST(c.APS_Dev as decimal(10,2)) end) as ''APS Dev'' ' 
        SET @cnt = @cnt + 1 
    END 
    SET @sqlQuery = @sqlQuery+' Minimum as Pres_Min From table_Name...'

带中文注释的翻译版

BEGIN 
    -- 声明用于存储动态SQL语句的变量
    DECLARE @sqlQuery VARCHAR(MAX) 
    -- 初始化动态SQL,先拼接固定查询字段部分
    SET @sqlQuery ='Select Style_Color, Style_Color_Desc as Description, RPT, Weeks, ' 
    -- 声明循环计数器变量,初始值设为1
    DECLARE @cnt INT = 1 
    -- 声明变量存储table_Name表的总记录数,用于控制循环次数
    DECLARE @TblCount NVARCHAR(1000) = (SELECT COUNT(ID) FROM table_Name) 
    -- 当计数器小于等于总记录数时,执行循环体
    WHILE @cnt <= @TblCount 
    BEGIN 
        -- 循环拼接动态字段:根据当前计数器对应的ID查询STORE_ID,将匹配Cluster_ID的APS_Dev字段值转为保留两位小数的十进制数,取最大值并命名为'APS Dev'
        SET @sqlQuery = @sqlQuery + 'max(CASE WHEN Cluster_ID = (Select STORE_ID from Table_Name where id= '+@cnt+') then CAST(c.APS_Dev as decimal(10,2)) end) as ''APS Dev'' ' 
        -- 计数器自增1
        SET @cnt = @cnt + 1 
    END 
    -- 拼接查询语句的尾部:添加Minimum字段并重命名为Pres_Min,指定查询来源表(原代码此处省略了后续关联/过滤逻辑)
    SET @sqlQuery = @sqlQuery+' Minimum as Pres_Min From table_Name...'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:23:44