Sql来更改列序列

Sql来更改列序列,sql,sql-server,sql-server-2005,dense-rank,Sql,Sql Server,Sql Server 2005,Dense Rank,如何在使用sql server 2005中将列中的旧序列更改为新序列 old new 1 1 1 1 3 2 4 3 5 4 5 4 5 4 8 5 8 5 10 6 你在找() 使用不带分区的子句: SELECT old, dense_rank() OVER (ORDER BY old) AS new FROM tbl; 我想你是在找密集的等级: select dense_rank() o

如何在使用sql server 2005中将列中的旧序列更改为新序列

old new
   1   1
   1   1
   3   2
   4   3
   5   4
   5   4
   5   4
   8   5
   8   5
   10  6
你在找()

使用不带
分区的
子句:

SELECT old, dense_rank() OVER (ORDER BY old) AS new
FROM   tbl;

我想你是在找密集的等级:

select dense_rank() over (order by old) rn, old
from yourtable
order by old

第一行必须为1“第一行必须为1-”。然后你应该能够编辑你的问题来纠正它。还有,我不知道你在问什么。是否要对INT列中的值进行“重新编号”以删除间隙并保留顺序?我认为OP正在寻找
densite\u rank
,因为它将保持正确的顺序。我不认为OP希望在这种情况下使用
partition by
select dense_rank() over (order by old) rn, old
from yourtable
order by old