我想用一个连续的整数来填充表格列,所以我考虑使用 ROWNUM。但是,我需要根据其他列的顺序来填充它,类似于 ORDER BY column1, column2
。不幸的是,这是不可能的,因为 Oracle 不接受以下语句:
UPDATE table_a SET sequence_column = rownum ORDER BY column1, column2;
下面的语句(试图使用WITH子句)也不起作用:
WITH tmp AS (SELECT * FROM table_a ORDER BY column1, column2)
UPDATE tmp SET sequence_column = rownum;
那么,我该如何使用 SQL 语句来完成,而不需要使用 PL/SQL 中的游标迭代方法呢?
sequence_column
将会变得不正确/过时。为什么不将sequence_column
(和编号)放在视图中 - 这样将始终是正确的。 - Damien_The_UnbelieverROWNUM
或ROW_NUMBER()
。 - Lukas Eder