将键添加到SQl数据库中的唯一值

时间:2013-09-16 00:59:42

标签: sql sql-server

我的SQL数据如下所示:

Col1
A
A
A
B
B
C
D

我想只为唯一值添加一个键。所以最终结果将如下所示:

Col1  Col2
A       1
A       1
A       1
B       2
B       2
C       3
D       3

我该怎么做?

1 个答案:

答案 0 :(得分:5)

您可以使用dense_rank()窗口函数执行此操作:

select col1, dense_rank() over (order by col1) as col2
from t;

这解决了作为查询的问题。如果您想实际更改表,那么代码更像是:

alter table t add col2 int;

with toupdate as (
    select t.*, dense_rank() over (order by col1) as newcol2
    from t
)
update toupdate
    set col2 = newcol2;