我正在尝试编写一个 SELECT 查询来计算BatchNumber
从 1001 开始每 150 行增加 1 的列。
预期BatchNumber
应该是1001
前 150 行,然后1002
是第 151-300 行,依此类推...
我尝试过在动态上使用除法ROW_NUMBER()
,但无法得到它。
SELECT ID
,ROW_NUMBER() OVER (ORDER BY (SELECT ID)) AS RowNumber
,CASE
WHEN CONVERT(INT, (ROW_NUMBER() OVER (ORDER BY (SELECT ID)) % 150))=0
THEN 0 ELSE 1001 END
+ CONVERT(INT,(ROW_NUMBER() OVER (ORDER BY (SELECT ID)) / 150))
AS BatchNumber
FROM Table1 WITH (NOLOCK);
Run Code Online (Sandbox Code Playgroud)