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

Откуда:
Сообщений: 16
Есть поле ID (int, primary key, autoincrement)
каким образом можно вывести список тех ID, которые отсутствуют между первым и последним значением ?
Т.е. имеем
1
2
4
5
7

должны получить
3
6
23 апр 03, 18:17    [182485]     Ответить | Цитировать Сообщить модератору
 Re: как проверить нумерацию ID  [new]
KonstN
Member

Откуда:
Сообщений: 1201
https://www.sql.ru/forum/actualthread.aspx?bid=1&tid=13289
23 апр 03, 18:28    [182499]     Ответить | Цитировать Сообщить модератору
 Re: как проверить нумерацию ID  [new]
YellowMan
Member

Откуда: острова
Сообщений: 1047

Create table Numbers (id int)
declare @i int
while @i<1000000000 begin--подставить по вкусу

insert into Numbers values (@i)
set @i=@i+1
end
/*
это выполнить один раз и держать эту табличку постоянно в базе,
потом мне спасибо скажете :)
*/

select id from Numbers where Number not in (select ID from MyTable) order by id


Еще вариант


select t1.ID+1 from MyTable t1 left join MyTable t2 on t1.ID=t2.ID+1
where t2.ID is null


Но это только частный вариант, как Вы понимаете, вернет Вам только нижнюю границу пропущенного ряда...
23 апр 03, 18:32    [182507]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить