Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Поиск следующего/предыдущего значения в столбце целых чисел  [new]
next_2
Guest
Запросом или кодом PL/SQL, требуется искать в таблице следующее или предыдущее значения поля. Значения целые и уникальные.
Хочу мнений.
В голове только, прямой перебор-сравнение, всего до нахождения нужного следующего за известным.
и нумерация строк row_number() и получение: "row_num + 1"

но что то мне тут не нравится. Какие варианты тут еще могут быть?
14 окт 11, 11:22    [11439521]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
ALocky
Member

Откуда: Понаехал из Подмосковья
Сообщений: 747
next_2,

lag/lead
14 окт 11, 11:25    [11439548]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54398
next_2
но что то мне тут не нравится. Какие варианты тут еще могут быть?
если ищется одно значение, то min/max
14 окт 11, 11:32    [11439606]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
JaRo
Member

Откуда:
Сообщений: 1659
Возможно вам pivot нужен. Но вообще вопрос поставлен непонятно. Пример дайте.
14 окт 11, 11:38    [11439656]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
kastolom
Member

Откуда:
Сообщений: 325
на мой взгляд этот пост отвечает на поставленный вопрос
14 окт 11, 11:44    [11439724]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
Elic
Member

Откуда:
Сообщений: 29991
JaRo
Но вообще вопрос поставлен непонятно. Пример дайте.
+1
14 окт 11, 11:48    [11439753]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
next_2
Guest
JaRo, мне кажется вопрос поставлен понятно.

повторюсь:

Мы имеем некое известное нам значение n. Требуется найти следующее за ним большее значение, которое не обязательно будет n+1.
14 окт 11, 11:51    [11439787]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
next_2
Guest
Пример:
order_id priority
1233
1347
14517
17651
19464


у меня есть order_id = 123. приоритет: n = 3
мне нужно передвинуть order_id вниз по очереди, соответственно нужно получить следующее значение приоритета.
т.е. нужно в найти 17.

записи могут удаляться, поэтому гарантировать порядок невозможно.
14 окт 11, 11:56    [11439860]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
next_2
Guest
Опечатка: найти нужно следующее то есть 7.
14 окт 11, 11:58    [11439873]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
__vvp_
Member

Откуда: Санкт-Петербург
Сообщений: 1158
next_2,

min(priority)
where priority > 3
14 окт 11, 12:01    [11439903]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
123йй
Guest
lead(priority) over (order by order_id)
14 окт 11, 12:06    [11439957]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
JaRo
Member

Откуда:
Сообщений: 1659
first_value(n) over (order by n range between 1 following and unbounded following)
14 окт 11, 12:08    [11439973]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
-2-
Member

Откуда:
Сообщений: 15330
next_2
Мы имеем некое известное нам значение n. Требуется найти следующее за ним большее значение, которое не обязательно будет n+1.
select :n + dbms_random.value(0, 1) from dual

next_2
мне нужно передвинуть order_id вниз по очереди, соответственно нужно получить следующее значение приоритета.
между "передвинуть" и "получить" неочевидно "соответственно". Задача сортировки решается с помощью order by. Задача следующее больше N решается через
__vvp_
min(priority)
where priority > 3
14 окт 11, 12:11    [11440002]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
JaRo
Member

Откуда:
Сообщений: 1659
JaRo
first_value(n) over (order by n range between 1 following and unbounded following)
бр, о чем это я...
14 окт 11, 12:17    [11440046]     Ответить | Цитировать Сообщить модератору
 Re: Поиск следующего/предыдущего значения в столбце целых чисел  [new]
next_2
Guest
Всем спасибо
14 окт 11, 14:32    [11441292]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить