我最近将一个约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
可以这样做吗?任何建议都将非常感激.
–Anne
解决方法
您可以使用[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