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

SQL Server中按指定分组大小为表记录分配组号并导入新表

你可以通过SQL Server的窗口函数ROW_NUMBER结合整数除法实现需求,具体实现语句如下:

-- 定义分组大小参数,可按需修改
DECLARE @GroupSize INT = 2;

INSERT INTO TABLE2 (ID, COL1, COL2, counter)
SELECT 
    ID,
    Col1 AS COL1,
    COL2,
    -- 计算分组编号
    (ROW_NUMBER() OVER (ORDER BY ID ASC) - 1) / @GroupSize + 1 AS counter
FROM TABLE1
ORDER BY ID ASC;

逻辑说明

  • 用ROW_NUMBER() OVER (ORDER BY ID ASC)按照主键ID升序为每条记录生成连续行号
  • 公式(行号 - 1) / 分组大小 + 1利用SQL Server整数除法自动向下取整的特性,刚好实现每n条记录对应同一个counter值的需求,计算结果和你给出的预期完全匹配
  • 如果需要自定义排序规则,只需要修改OVER子句里的ORDER BY部分即可

注意事项

ID是主键自带索引,该方案对海量数据的处理效率很高,不会有额外的性能开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:54:04