![]() |
|
Модераторы: LSD |
![]()
|
|
| proger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 400 Регистрация: 10.10.2004 Репутация: нет Всего: 1 |
В базе есть таблица где id такие: 1,2,3,5,6
Вот как найти минимальное число, которого нет в базе, т.е. 4, только это надо сделать в запросе! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
А почему не 0, его ведь тоже нет среди ID?
Почетче сформулируй вопрос. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| proger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 400 Регистрация: 10.10.2004 Репутация: нет Всего: 1 |
Можно и 0. Надо найти в базе минимальное число, которое отсутствует! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| proger |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 400 Регистрация: 10.10.2004 Репутация: нет Всего: 1 |
А если такие 0,1,2,4,5 |
||||
|
|||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
Если "дырок" нет, вернет max(id)+1. Если 0 не будет, его тоже не вернет Более того, не вернет и 1, если последовательность твоих ID начинается с 2 (2,4,5). Т.е. корректно будет работать, если "дырка" "обрамлена" с ДВУХ сторон. -------------------- Хотите поговорить об этом? |
|||
|
||||
| proger |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 400 Регистрация: 10.10.2004 Репутация: нет Всего: 1 |
А подробнее описать твой запрос не можешь, обьяснить? |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Этот запрос вначале найдет все дырки, выберет минимальную из них и вернет значние на 1 больше. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| igon |
|
||||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
Почти так, только 1 прибавляется не к найденной минимальной "дырке", а к минимальному ID, для которого при объединении таблицы самой с собой не найден ID, больший на 1. Для 1,2,4,5 запрос
вернет
Left [Outer] Join работает так, что
Т.е. запрос можно "прочитать" так: "Для каждого ID из A вывести его значение и значение ID из B, для которого выполняется условие a.id+1 = b.id. Если условие не выполняется ("дырка"), вывести null. При помощи
оставляем только записи, у a.ID которых рядом - "дырка". min(a.ID) дает наименьший такой ID. Прибавление к нему 1 и дает искомое
-------------------- Хотите поговорить об этом? |
||||||||||||
|
|||||||||||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: 3 Всего: 1 |
а если 1 2 5 6 ???
-------------------- --- |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Вернет 3. А в чем собстевенно вопрос? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: 3 Всего: 1 |
да ни в чем
невнимательно глянул первый раз думал обсуждается алгоритм поиска дырок -------------------- --- |
|||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |