Oracle: Обновление столбца таблицы с помощью ROWNUM в сочетании с предложением ORDER BY

Я хочу заполнить столбец таблицы текущим целым числом, поэтому я подумываю использовать 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?

17
задан Lukman 23 May 2011 в 07:18
поделиться