如何使用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
如何使用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
我想你正在寻找dense_rank
:
select dense_rank() over (order by old) rn, old
from yourtable
order by old
使用不带子句的窗口函数:dense_rank()
PARTITION
SELECT old, dense_rank() OVER (ORDER BY old) AS new
FROM tbl;