Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Перенумерация строк  [new]
rvolt
Member

Откуда:
Сообщений: 2
В общем проблема такая, есть таблица с целочисленным полем, по этому полю происходит сортировка записей при выводе. Обычно в этом поле имеются данные следующего вида:

----------------------
Данные, Позиция
----------------------
Данные 1, 100
Данные 2, 200
Данные 3, 300
Данные 4, 400

И когда, например, строку 3 надо перетащить на 2-ю позицию делаю так:

----------------------
Данные, Позиция
----------------------
Данные 1, 100
Данные 2, 200
Данные 3, 150
Данные 4, 400

Теперь вопрос - каким образом можно перенумеровать ряд что бы он принял вид исходного, т.е.:

----------------------
Данные, Позиция
----------------------
Данные 1, 100
Данные 2, 300
Данные 3, 200
Данные 4, 400

В mysql всё делается просто:
set @counter := 0;
update table_name set position = (@counter := @counter + 100) order by position;

Самому времени нет разбираться, может кто что-нибудь посоветует?
1 мар 07, 18:50    [3850561]     Ответить | Цитировать Сообщить модератору
 Re: Перенумерация строк  [new]
Elic
Member

Откуда:
Сообщений: 29979
STFF Пронумеровать строки
1 мар 07, 18:54    [3850576]     Ответить | Цитировать Сообщить модератору
 Re: Перенумерация строк  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
9i+
create --drop
table mumu as select rownum rn, dbms_random.value v from tab where rownum<11;

select * from mumu order by rn;

merge into mumu D
using (select rowid rw,row_number() over (order by v) r from mumu ) S
on (D.rowid = S.rw)
when matched then update set
  D.rn = S.r
when not matched then insert 
  (D.rn  ) values (null);
  
select * from mumu order by rn;
1 мар 07, 19:13    [3850648]     Ответить | Цитировать Сообщить модератору
 Re: Перенумерация строк  [new]
rvolt
Member

Откуда:
Сообщений: 2
Всем спасибо за помощь :)
1 мар 07, 21:13    [3850922]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить