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

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/278764.html

(0)
上一篇 2022年8月3日
下一篇 2022年8月3日

相关推荐

发表回复

登录后才能评论