SQL Server 更新字段值为ROW_NUMBER()
作者:互联网
在SQL Server 已存在的表中,要Update字段值为排序了的行号,这里要用到开窗函数ROW_NUMBER()。
分两种情况看:
1、全表自动排序:
OrderNum为要更新的排序字段。Id为按照什么顺序重置排序数据。通过执行如下sql语句实现了上面的需求:
update T set OrderNum = rownum from( select OrderNum, ROW_NUMBER() over(order by Id) rownum from T_A ) T
2、带条件的重置排序。
把RoleId=2的所有数据按照id排序,重置OrderNum值。
update T set OrderNum = rownum from( select RoleId,OrderNum, ROW_NUMBER() over(order by Id) rownum from T_A where RoleId=2 ) T where RoleId=2
标签:段值,RoleId,NUMBER,Server,OrderNum,rownum,排序,ROW 来源: https://www.cnblogs.com/zhengxianfa/p/16547314.html