数据库
首页 > 数据库> > SQL Server 更新字段值为ROW_NUMBER()

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