Sql 如何更新列';使用Teradata中的行号设置s值

Sql 如何更新列';使用Teradata中的行号设置s值,sql,teradata,Sql,Teradata,我想用这种方式更新列的值 new value = old value + row_number() * 1000 同样对于行号,我想使用按旧值排序 但我没有找到任何解决办法 样本数据 column 1 3 5 在更新查询之后,它应该是 column 1001 2003 3005 你能提供一些样本数据吗?你能提供一些样本数据吗?你能提供一些样本数据吗?你能提供一些样本数据吗? CREATE VOLATILE TABLE test, NO FALLBAC

我想用这种方式更新列的值

new value  = old value + row_number() * 1000
同样对于行号,我想使用按旧值排序

但我没有找到任何解决办法

样本数据

column    
   1
   3
   5
在更新查询之后,它应该是

column
  1001
  2003
  3005

你能提供一些样本数据吗?你能提供一些样本数据吗?你能提供一些样本数据吗?你能提供一些样本数据吗?
CREATE VOLATILE TABLE test, NO FALLBACK
(MyCol SMALLINT NOT NULL)
PRIMARY INDEX (MyCol)
ON COMMIT PRESERVE ROWS;

INSERT INTO test VALUES (1);
INSERT INTO test VALUES (3);
INSERT INTO test VALUES (5);

SELECT MyCol FROM test;

UPDATE test
  FROM (SELECT MyCol
             , ROW_NUMBER() OVER (ORDER BY MyCol) AS RowNum_
          FROM test) DT1
   SET MyCol = test.MyCol + (RowNum * 1000)
 WHERE test.MyCol DT1.MyCol;

SELECT MyCol FROM TEST;