将行号添加到新列

时间:2015-04-26 13:30:50

标签: sql sybase rownum

我想创建一个新列,并使用行号填充该列中每行的值。

这可以通过这样做在oracle中实现。

alter table mytable add (myfield integer);
update mytable set myfield = rownum;

如何在SYBASE ASE中完成?

3 个答案:

答案 0 :(得分:3)

alter table mytable 
add id bigint identity not null

这就是全部。每行中都会有一列id,其中包含该行的唯一序列号。

答案 1 :(得分:0)

insert into some_names (name) values ('Huey');
insert into some_names (name) values ('Dewey');      
insert into some_names (name) values ('Louie');   

现在我们可以做这样的事情:

Select

答案 2 :(得分:0)

在我的情况下,当我尝试使用标识列时间时,它无法在合理的时间内完成(196400行)。

快速简便的方法是创建一个INT列并使用每行后增加的临时变量 @id 填充它。 这个解决方案在~4秒内完成。

alter mytable add myfield INT

DECLARE @id INT 
SET @id = 0 
UPDATE mytable
SET @id = myfield = @id + 1 

您可以在此处找到更多信息:https://www.mssqltips.com/sqlservertip/1467/populate-a-sql-server-column-with-a-sequential-number-not-using-an-identity/