我正在使用SQL Server 2008。
现在我有如下描述的场景:
- 1 个表,包含 3 列:ID、名称、顺序。
- 他们有 8 条记录。
- 5 条记录具有相同的数据:ID='1',名称='AAA'
- 3 条记录具有相同的数据:ID='2',名称='BBB'
现在我想为每个ID,名称更新数字递增(从1开始)的订单列:
No Name Order
1 AAA 1
1 AAA 2
1 AAA 3
1 AAA 4
1 AAA 5
2 BBB 1
2 BBB 2
2 BBB 3
如何在不使用游标的情况下获得此结果?
我非常感谢您的帮助。
谢谢。
您可以尝试以下操作。 我使用 CTE 驱动更新语句
WITH data AS
(
SELECT Order
, ROW_NUMBER() OVER (PARTITION BY ID, NAME
ORDER BY ID, NAME) AS Seq
FROM TableA
)
UPDATE data
SET Order = Seq
将表 A 替换为表名称