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

如何使用T-SQL实现每间隔N行选取N行的动态数据查询?

按间隔选取行的SQL实现方案

你可以基于已有的行号逻辑,通过模运算实现动态可配置的选行规则,具体实现如下:

核心逻辑

将「每次选取行数+每次跳过行数」作为一个循环周期,通过行号对周期长度取模的结果,判断当前行是否属于需要选取的区间。

可动态配置的查询代码

你可以直接修改两个配置参数适配不同的选行/跳行需求,无需调整其他逻辑:

-- 可自定义配置参数
DECLARE @take_rows INT = 3; -- 每次连续选取的行数
DECLARE @skip_rows INT = 3; -- 每次选取后跳过的行数

-- 自动计算周期长度,无需手动修改
DECLARE @cycle_length INT = @take_rows + @skip_rows;

WITH numbered_result AS (
    SELECT
        -- 你原来的查询字段保留在此处即可
        *,
        ROW_NUMBER() OVER (ORDER BY LastName) AS row_num
    FROM 你的业务表名 -- 替换为你实际查询的表名/视图名
)
SELECT *
FROM numbered_result
WHERE (row_num - 1) % @cycle_length < @take_rows;

规则说明

  • 当@take_rows=3、@skip_rows=3时,查询结果刚好匹配你需要的选1-3行、跳4-6行、选7-9行的规则
  • 如果需要获取反向结果(即原本跳过的行),仅需将WHERE条件中的<修改为>=即可
  • 该逻辑对任意大小的结果集都可生效,修改参数即可适配其他选跳规则(比如每选2行跳5行,仅需修改对应参数值)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:12:03