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

SQL Server中如何按Code-Prod分组为表新增Flag标识列

SQL Server 按分组首行规则新增Flag列实现方法

实现逻辑

按照需求,按Code+Prod组合分组,组内按Id升序排序,每组第一条记录Flag设为0,其余记录设为1,使用窗口函数ROW_NUMBER()可以快速实现分组排序编号,结合可更新CTE即可直接完成列赋值。

操作步骤

  • 第一步:给目标表新增Flag字段
-- 请将YourTable替换为你的实际表名
ALTER TABLE YourTable ADD Flag INT NOT NULL DEFAULT(0);
  • 第二步:执行更新语句给Flag赋值
WITH GroupSort AS (
    SELECT
        Flag,
        ROW_NUMBER() OVER (PARTITION BY Code, Prod ORDER BY Id) AS GroupRowId
    FROM YourTable
)
UPDATE GroupSort
SET Flag = CASE WHEN GroupRowId = 1 THEN 0 ELSE 1 END;

可选:查询时动态计算Flag(无需修改表结构)

如果不需要持久化存储Flag值,只需要查询时返回对应结果,可以直接用以下语句,不需要执行加列和更新操作:

SELECT
    Id,
    Code,
    Prod,
    CASE WHEN ROW_NUMBER() OVER (PARTITION BY Code, Prod ORDER BY Id) = 1 THEN 0 ELSE 1 END AS Flag
FROM YourTable
ORDER BY Id

执行以上语句返回的结果和给出的预期示例完全匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:36:19