T-SQL行号在N之后重新启动
在一定数量的行之后,如何重新启动我的行号 例如 我怎样才能转身T-SQL行号在N之后重新启动,sql,sql-server,tsql,Sql,Sql Server,Tsql,在一定数量的行之后,如何重新启动我的行号 例如 我怎样才能转身 ID RowNumber ------------- 100 1 101 2 102 3 125 4 126 5 148 6 149 7 150 8 151 9 进入 请注意,没有基于ID进行分区的方法,这实际上是随机的 我尝试使用递归CTE,结果非常接近 这: 返回: ID RowNumber ------------- 100 1 1 100 2 2 101 3 3 102 4 4 125 5 1 12
ID RowNumber
-------------
100 1
101 2
102 3
125 4
126 5
148 6
149 7
150 8
151 9
进入
请注意,没有基于ID进行分区的方法,这实际上是随机的
我尝试使用递归CTE,结果非常接近
这:
返回:
ID RowNumber
-------------
100 1 1
100 2 2
101 3 3
102 4 4
125 5 1
126 6 2
148 7 3
149 8 4
150 9 1
151 10 2
这与第一个ID非常接近
任何帮助都会很好
谢谢
是否将使用模运算符:
select id, rownumber, 1 + ((rownumber - 1) % 4)
from table t;
如果rownumber不是列,也可以使用row_number函数:
select id, row_number() over (order by id),
1 + ((row_number() over (order by id) - 1) % 4)
from table t;
使用模运算符:
select id, rownumber, 1 + ((rownumber - 1) % 4)
from table t;
如果rownumber不是列,也可以使用row_number函数:
select id, row_number() over (order by id),
1 + ((row_number() over (order by id) - 1) % 4)
from table t;