SQL Server 对另一列的ORDER执行UPDATE列操作

mnemlml8  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(137)

例如,如果表模式如下所示

CREATE TABLE MyHits  
( 
    Name varchar(20) NOT NULL,  
    Sequence int NULL
);

示例数据:

Name Sequence
---- --------
Dan  
Ana
Len

我需要将Sequence列更新为:

Name Sequence 
---- --------
Dan  2 
Ana  1 
Len  3

如何做到这一点?什么是查询?
我不喜欢使用游标。我试图实现的是根据Name列的字母顺序设置Sequence列。

gcuhipw9

gcuhipw91#

您可以在此处使用 row_number 和可更新的CTE:

with t as (
    select *, Row_Number() over(order by name) rn
    from myhits
)
update t set Sequence = rn;

相关问题