Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SQL+ [Paradox]


VIB ©   (2002-02-01 17:27:00) 

Есть некая таблица Customer, в которой существует некоторое целочисленное поле ID, служащее первичным ключем. В процессе работы в таблицу добавляются и удаляются записи. После удаления возникают так называемые дырки (к примеру 1,2,4,5,7,8). Необходимо одним запросом найти любую дырку


VIB   (2002-02-02 13:55:00) [1]

Если кому-то интересно то я раздолбал проблему.Запрос
select a.id+1 nom from cust.db a
where not exists(select b.id from cust.db b where a.id+1=b.id )


VIB   (2002-02-02 13:06:00) [2]

Спасибо AlexR_R за ответ. Но он работает неправильно.
Если есть последовательность 1,2,4,5,7,8 то запрос выдает
результат 2,5,8


AlexR_R   (2002-02-01 19:43:00) [3]

Может есть что-то лучше, первое что пришло в голову


select t1.* from test t1
where
not exists(select id from test t2 where t2.ID > t1.ID and t2.id <= t1.ID + 1)

Получишь все номера к которым прибавив единицу получишь пустой ID
Если добавить order by t1.ID, то первая запись плюс один
будет минимальным ID


}{unter   (2002-02-01 18:17:00) [4]

Да вопрос интересный ! Сижу репу чешу. По-моему так сходу не ответишь. Пишу проверяю. Может быть раньше кто нарисует - интересно посмотреть !


Наверх

Титульная страница Поиск, карта сайта Написать письмо