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)