如何将第一行设置为1,而不是2,依此类推

时间:2018-04-23 16:17:27

标签: sql

我有一个数据集和一个ID号码(不是从1开始,它们是混合的)。

我想添加一个新列,并为第一行提供“NewID”= 1,下一行为2,依此类推。

实施例

ID  Name  Bus
232  XY    VT
676  NT    OP

需要这个:

ID  Name  Bus  NewID
232  XY    VT    1
676  NT    OP    2

等等

3 个答案:

答案 0 :(得分:0)

这取决于您的平台和您的实际SQL(您没有发布),但以下内容可能会有效。

select ID, Name, Bus, ROW_NUMBER() OVER (ORDER BY ID ASC) AS NewID
from a_table_name_you_did_not_tell_us

答案 1 :(得分:0)

您基本上需要将ID_New列设置为标识列。正如您已经拥有它,我们可以创建一个新列,删除id_new列,然后将新列重命名为id_new。

Alter Table Names Add Id_new1 Int Identity(1,1)
Go

Alter Table Names Drop Column ID_New
Go

Exec sp_rename 'Names.Id_new1', 'ID_new','Column'

答案 2 :(得分:0)

这是如何在mysql中执行此操作的

SET @pos := 0;
UPDATE table_name SET new_id = ( SELECT @pos := @pos + 1 ) order by old_id;