我有一些数据(没有ID),我想选择唯一值(选择身份)并给他们一个ID(不改变顺序)。有谁知道怎么做? MS-SQL。
答案 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] 开始填充。
答案 2 :(得分:1)
这样的事情对你有用:
create table #temp (rowid int identity, col1 int, col2 varchar(max)...)
insert #temp
select * from your table