我最近将大约 60k 条记录导入到一个表中,该表将一个表中的数据与另一个表中的数据相关联。但是,我的客户此后要求将排序顺序添加到所有 60k 记录中。我希望有一种很好的干净的方法可以在 SQL 更新中自动生成这些排序顺序。完成的数据应该是这样的:
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
这能做到吗?任何建议将不胜感激。
--安妮
最佳答案
您可以使用 [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
关于sql - 使用 SQL UPDATE 自动生成排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/511925/