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

如何在SQL子查询中实现变量@c的自增?

解决方案

在你的SQL查询中,直接使用变量@c无法实现逐行自增——因为SELECT语句是批量处理的,变量赋值会在整个查询执行完成后才生效,导致所有<ul>标签的id都会是inputState0。

要实现每个分组(或每行)生成唯一的递增ID,你可以用**窗口函数ROW_NUMBER()**来替代变量@c,它能为查询结果的每一行生成一个连续的序号。

修改后的完整SQL代码

DECLARE @technicalProperty nvarchar(max)='' 

SET @technicalProperty+= 
( 
    SELECT 
        '&lt;div class=&quot;col-12 ms-3 ms-md-0 mt-3&quot;&gt;
           &lt;label for=&quot;inputState&quot; class=&quot;form-label&quot;&gt;'+ec_with_rn.Title+':&lt;/label&gt;
           &lt;ul class=&quot;&quot; id=&quot;inputState'+CAST(rn as nvarchar(max))+'&quot;&gt;
           '+STUFF(
              ( 
                 SELECT '  &lt;li class=&quot;btn btn-outline-dark me-3 my-1&quot; data-spec1=&quot;'+CAST(dy.categoryParentID as nvarchar(max))+'&quot; data-spec2=&quot;'+CAST(dy.CategoryChildID as nvarchar(max))+'&quot; data-oldproid=&quot;'+CAST(@current_CommodityNServicePropertyID as nvarchar(max))+'&quot; style=&quot;width:120px;&quot;&gt;'+dy.childTitle+'&lt;/li&gt;'
                 FROM #dynamicTbl dy
                 WHERE dy.CategoryParentID = ec_with_rn.categoryParentID
                 FOR XML PATH(''),TYPE
              ).value('.','NVARCHAR(MAX)'),1,1,'')
            +'&lt;/ul&gt;&lt;/div&gt;'  
    FROM (
        -- 内层查询添加ROW_NUMBER()生成递增序号
        SELECT DISTINCT 
            ec.categoryParentID,
            ec.Title,
            ROW_NUMBER() OVER(ORDER BY ec.categoryParentID) AS rn -- 可按需调整排序字段
        FROM CnSTechnicalSpecification sc
        LEFT JOIN categoryParent ec on ec.categoryParentID=sc.categoryParentID
        WHERE CategoryChildID=@ChildID 
          and ec.categoryParentID!=3
    ) AS ec_with_rn
    FOR XML PATH(''),TYPE
).value('.','nvarchar(max)')

关键说明

  • 新增内层子查询ec_with_rn,用ROW_NUMBER() OVER(ORDER BY ec.categoryParentID)生成从1开始的连续序号rn,你可以根据实际需求修改ORDER BY的字段(比如按ec.Title排序),确保序号生成符合业务逻辑。
  • 移除原变量@c,直接用rn替换到<ul>的id属性中,这样每个分组对应的<ul>都会得到唯一的inputState1、inputState2...格式的ID。
  • 原查询中的DISTINCT保留在内层子查询中,避免重复分组生成重复序号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:50:24