使用SQL UPDATE自动生成排序顺序

Ann*_*off 8 sql sql-server-2005

我最近将一个约60,000条记录导入到一个表中,该表将一个表中的数据与另一个表中的数据相关联.但是,我的客户已要求将排序顺序添加到所有60k记录中.我希望有一种很好的清洁方法可以在SQL Update中自动生成这些排序顺序.完成的数据应如下所示:

item1ID  item2ID  sortOrder
1           123       1
1           12        2
1           45        3
1           22        4
1           456       5
2           5         1
2           234       2
2           56        3
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?任何建议都将非常感激.

--Anne

cms*_*sjr 10

您可以使用[ROW_NUMBER] [1]并按Item1ID进行分区

UPDATE t1
SET t1.SortOrder = t2.SortOrder 
FROM @t t1
INNER JOIN
(SELECT Item1ID, Item2ID, ROW_NUMBER() OVER
    (PARTITION BY Item1ID ORDER BY Item1ID, Item2ID) AS SortOrder
from @t) t2
ON t1.Item1ID = t2.Item1ID 
AND t1.Item2ID = t2.Item2ID
Run Code Online (Sandbox Code Playgroud)