You need to enable JavaScript to run this app. 如何用单条T-SQL查询实现遇到Product值时行号自动递增?
优惠活动
大模型
产品
解决方案
定价
更多

如何用单条T-SQL查询实现遇到Product值时行号自动递增?

实现思路

核心利用T-SQL的窗口累加函数实现,不需要嵌套子查询、临时表,单条语句即可完成需求:

  • 第一步:对每行数据做判定标记,当Vals值为Product时标记值为1,其余行标记为0
  • 第二步:按照ID升序的顺序,对上述标记值做累计求和,得到的结果就是要求的RWNUM,天然满足每遇到Product就加1的规则
实现代码

假设你的源表名称为Products,替换为实际表名即可直接运行:

SELECT
    SUM(CASE WHEN Vals = 'Product' THEN 1 ELSE 0 END) OVER(ORDER BY ID) AS RWNUM,
    ID,
    Vals
FROM Products
验证说明

该查询返回结果完全匹配要求:

  • ID为1的行是第一个Product,累计求和得1,后续ID2-5行标记都是0,累加值保持1,对应第一组数据
  • ID为6的行是第二个Product,累加值加1变为2,后续ID7-8保持2,对应第二组数据
  • ID为9的行是第三个Product,累加值加1变为3,ID10保持3,对应第三组数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 13:15:03