如何对SQL Server中的唯一值进行编号

如何对SQL Server中的唯一值进行编号,sql,sql-server,identity,Sql,Sql Server,Identity,我有一些没有ID的数据,我想选择唯一的值select identity并在不改变顺序的情况下给它们一个ID。有人知道怎么做吗?MS-SQL 我不知道不改变顺序是什么意思,因为SQL表已经表示无序集,所以它们没有顺序。您可以使用密集排列为列中的每个唯一值指定一个数字: 我不知道不改变顺序是什么意思,因为SQL表已经表示无序集,所以它们没有顺序。您可以使用密集排列为列中的每个唯一值指定一个数字: 像这样的东西应该适合你: create table #temp (rowid int identity,

我有一些没有ID的数据,我想选择唯一的值select identity并在不改变顺序的情况下给它们一个ID。有人知道怎么做吗?MS-SQL


我不知道不改变顺序是什么意思,因为SQL表已经表示无序集,所以它们没有顺序。您可以使用密集排列为列中的每个唯一值指定一个数字:


我不知道不改变顺序是什么意思,因为SQL表已经表示无序集,所以它们没有顺序。您可以使用密集排列为列中的每个唯一值指定一个数字:


像这样的东西应该适合你:

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

像这样的东西应该适合你:

create table #temp (rowid int identity, col1 int, col2 varchar(max)...)
insert #temp
select * from your table 
通过以下方式添加ID列:

alter table ChannelGrName add ID int identity(1,1);
它将用从1到现有行数的有序数字填充ID列。对于将来的插入,ID列应从[行数+1]开始填充

通过以下方式添加ID列:

alter table ChannelGrName add ID int identity(1,1);
它将用从1到现有行数的有序数字填充ID列。对于将来的插入,ID列应从[行数+1]开始填充


什么是数据库技术?Oracle、MS-SQL、MYSQL?其他人编辑您的问题并提供示例数据、所需结果和数据库标记。什么数据库?。给它们一个GUID对您有用吗?正如其他人所说,表没有顺序。尽管它可能看起来像经常重复的那样,但这并不能保证。您可以根据无订单分配ID,但不能保证选择。。。然后选择。。。。order by ID将返回相同的订单。什么是DB技术?Oracle、MS-SQL、MYSQL?其他人编辑您的问题并提供示例数据、所需结果和数据库标记。什么数据库?。给它们一个GUID对您有用吗?正如其他人所说,表没有顺序。尽管它可能看起来像经常重复的那样,但这并不能保证。您可以根据无订单分配ID,但不能保证选择。。。然后选择。。。。order by ID将返回相同的顺序。当您运行insert时,添加所需的order by规则,这是数据输入的顺序当您运行insert时,添加所需的order by规则,这是数据输入的顺序可能一致,但在图像中按升序排列。可能一致,但是它在图像中是按升序排列的。我不知道您可以向包含数据的表中添加标识我不知道您可以向包含数据的表中添加标识