使用编程增加SQL Server中的值

时间:2011-02-04 10:25:44

标签: sql-server using auto-increment

我在SQL Server中有一个包含3个字段的表

Id int identity(1,1)
thRead int
level int

现在在这个表中有一些线程,比如1-5,所有都重复5次,如下所示:

 1,1,1,1,1 2,2,2,2,2 3,3,3,3,3 4,4,4,4,4 5,5,5,5,5

现在我想更新级别,对于一组记录,它应该从零开始递增,另一组从0开始递增等等。

我想要输出如下表....

1   0
1   1
1   2
1   3
1   4
2   0
2   1
2   2
2   3
2   4
3   0
3   1
3   2
3   3
3   4

请任何人可以帮我解决这个问题...更新应该是选择查询所以不需要手动输入线程,它应该自动更新

谢谢和问候 阿巴斯电动

2 个答案:

答案 0 :(得分:1)

这是一次性更新吗?如果是这样,这将有效。

with cte as
(
SELECT Id , thRead, level,
       ROW_NUMBER() OVER (PARTITION BY thRead ORDER BY Id) -1 AS RN
FROM T
)
UPDATE cte
SET level = RN

如果你想为更难的新行继续这样做。

答案 1 :(得分:0)

你可以试试这个

;WITH Temp as
(
 SELECT Id , thRead, ROW_NUMBER() OVER (PARTITION BY thRead ORDER BY Id) -1 'Level' 
 FROM YourTable
)
Select Id, ThRead, Level from Temp