我有一个数据集和一个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
等等
答案 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;