Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/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
Sql server 2008 随着编号的增加更新订单列(取决于ID列)_Sql Server 2008 - Fatal编程技术网

Sql server 2008 随着编号的增加更新订单列(取决于ID列)

Sql server 2008 随着编号的增加更新订单列(取决于ID列),sql-server-2008,Sql Server 2008,我正在使用SQL Server 2008 现在我有如下描述的场景: 1个表,共3列:ID、名称、顺序 他们有8项记录 5条记录具有相同的数据:ID='1',Name='AAA' 3条记录具有相同的数据:ID='2',Name='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 B

我正在使用SQL Server 2008

现在我有如下描述的场景:

  • 1个表,共3列:ID、名称、顺序
  • 他们有8项记录
  • 5条记录具有相同的数据:ID='1',Name='AAA'
  • 3条记录具有相同的数据:ID='2',Name='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来驱动update语句

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是的,您的样品确实解决了我的问题。非常感谢你。