如何在SQL Server

时间:2018-05-16 19:25:39

标签: sql sql-server identity

我有一些数据(没有ID),我想选择唯一值(选择身份)并给他们一个ID(不改变顺序)。有谁知道怎么做? MS-SQL。

unique data

3 个答案:

答案 0 :(得分:2)

我不知道你的意思"没有改变顺序",因为SQL表已经代表无序集,所以他们没有排序。您可以使用dense_rank()

为列中的每个唯一值指定一个数字
select t.*, dense_rank() over (order by data) as data_id
from t;

答案 1 :(得分:2)

通过以下方式添加ID列:

alter table ChannelGrName add ID int identity(1,1);

将使用从1开始的有序数字填充ID列到现有行数。对于将来的插入,ID列应该从 [行数+ 1] 开始填充。

SQL Fiddle Demo

答案 2 :(得分:1)

这样的事情对你有用:

create table #temp (rowid int identity, col1 int, col2 varchar(max)...)
insert #temp
select * from your table