我有一个表记录:
ID Name RecordId GroupField
1 asd 1 Group1
2 asd2 1 Group1
3 asd3 1 Group1
4 asd4 1 Group2
5 asd5 1 Group2
我需要的是一个查询,它将根据我的记录所在的组更新 RecordId 列。结果如下所示:
ID Name RecordId GroupField
1 asd 1 Group1
2 asd2 2 Group1
3 asd3 3 Group1
4 asd4 1 Group2
5 asd5 2 Group2
RecordId 必须从 1 开始递增,并且需要为每个组重置并从 1 开始。
最佳答案
您可以尝试使用 ROW_NUMBER
类似的东西
;WITH Vals AS (
SELECT ID, ROW_NUMBER() OVER (PARTITION BY GroupField ORDER BY ID) NewID
FROM Table1
)
UPDATE Table1
SET RecordID = NewID
FROM Table1 t INNER JOIN
Vals v ON t.ID = v.ID
SQL Fiddle DEMO
关于sql-server - 为表中每条记录的字段添加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22858557/