数字增加的Update Order列(取决于ID列)

时间:2014-01-20 03:11:59

标签: sql-server-2008

我正在使用SQL Server 2008.

现在我的情况如下所示:

  • 1个包含3列的表:ID,Name,Order。
  • 他们有8条记录。
  • 5条记录具有相同的数据:ID =' 1',名称=' AAA'
  • 3条记录具有相同的数据:ID =' 2',名称=' BBB'

现在我想更新每个ID的名称增加(从1开始)的Order列,名称:

    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

如何在不使用游标的情况下获得此结果?

我非常感谢您的帮助。

感谢。

1 个答案:

答案 0 :(得分:2)

您可以尝试以下操作。我使用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

用表名

替换TableA