使用行号更新列

时间:2017-02-17 02:58:17

标签: teradata rowcount

我有一个大表,需要在Teradata中添加行号。我在表上有一个名为row_num的列,但我需要用实际数字更新它。我试过使用下面的代码,但它不会起作用。

update database.time
set row_num = INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY
(START WITH 1
INCREMENT BY 1
MINVALUE 1
NO CYCLE))

任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:0)

如果您有一个唯一标识每一行的标识列,您可以执行以下操作:

update t
    set t.row_num = tt.seqnum
    from database.time t,
         (select t.*, row_number() over (order by id) as seqnum
          from database.time t
         ) tt
    where t.id = tt.id;

答案 1 :(得分:0)

update  t

from    mytable t 
      ,(select     t.*
                   ,cast( row_number() over (order by id) as bigint) as rn

        from        mytable t
        ) tt

set     row_num = tt.rn

where   t.id = tt.id
;