将数字 1-8(重复)分配给 T-SQL 查询的结果

问题描述 投票:0回答:1

我有来自 sql 语句的可变数量的结果,我想为每行分配一个数字(例如行数),但在每 8 行后重复一次。在这种情况下,我通常会进行分区,但我没有任何字段可以作为重置的基础。我认为模数是一个好方法,但我也无法让该方法发挥作用。我可以使用另一个 T-SQL 函数来实现此结果吗?

t-sql
1个回答
0
投票

每当你想到“在 1 和 N 之间重复 row_numbers”时,你应该想到“模数”,所以你绝对走在正确的轨道上。

这是

((i + 1) % n) + 1
的一个非常标准的公式,其中
i
是行号。在 tsql 中重复 1 到 8 之间的行号时,将采用以下形式:

SELECT ((ROW_NUMBER() OVER (ORDER BY <your ordering column(s)>) -1) % 8) + 1 as repeating_row_number
FROM yourtable
© www.soinside.com 2019 - 2024. All rights reserved.