Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
T-SQL行号在N之后重新启动_Sql_Sql Server_Tsql - Fatal编程技术网

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;