Как переупорядочить данные в той же таблице? - PullRequest
0 голосов
/ 02 апреля 2020

КАК ЕСТЬ:

ID       Version 
5587138  1
6460704  2
6537612  3
6264608  4

TO-BE:

ID       Version
5587138  1
6264608  2
6460704  3
6537612  4

Я должен переупорядочить идентификаторы для соответствовать порядку версий. Данные поступают из той же таблицы. В настоящее время я пытаюсь использовать PL / SQL. Мне действительно нужна помощь в этом вопросе. Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Мой совет: не меняйте номера версий, поскольку, если одна и та же версия существует для более чем одного идентификатора, но используйте версию, которая не требуется на основе rownum

 SELECT ID,Coldata,rownum version
 FROM ( SELECT ID,Coldata, version FROM TABLE ORDER BY ID,Coldata);
0 голосов
/ 02 апреля 2020

Вы можете использовать оператор merge следующим образом:

merge into your_table trg
using (select id, row_number() over (order by id) as version from your_table) src
on (trg.id = src.id)
when matched then
update set trg.version = src.version;
...