Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];

Вниз

Выбор всех чсловых значений которых нет в таблице...   Найти похожие ветки 

 
Vick   (2003-02-03 12:59) [0]

Доброго всем утра. Может кто подскажет как решить проблему такого плана: есть таблица
A B C
-------
1 1 1
2 a c
3 s b
4 r s
6 g g
7 f d
9 s a
10 d e

в поле А есть пропущенные номера, вот их нужно каим-то образом отлавливать запросом и находить минимальный. Как это сделать?


 
stone   (2003-02-03 13:04) [1]

Только проехать курсором, получив временную таблицу с отсутствующими номерами, а уж из нее потом выбирай что хочешь.


 
Vick   (2003-02-03 13:18) [2]

А без курсора никак нельзя???


 
stone   (2003-02-03 13:29) [3]

Можно и так, но это в принципе то же самое

declare
@Min integer,
@Max integer

create table #TmpTable(MyField integer)

set @Min=1 (или 0, смотря что надо)
set @Max = select Max(A) from ТвояТаблица
while @Min<>@Max
begin
if not exists(select A from ТвояТаблица where A=@Min)
insert into #TmpTable(MyField) values(@Min)
end

select min(MyField) from #TmpTable
.... ну и т.д.


 
Vick   (2003-02-03 13:47) [4]

Ага, спасибо, получилось :)))))


 
stone   (2003-02-03 13:54) [5]

На самом деле все зависит от цели. Если нужно найти просто первое пропущенное значение, то нет необходимости во временной таблице.

declare
@Min integer,

set @Min=1 (или 0, смотря что надо)
while exists(select A from ТвояТаблица where A=@Min)
begin
set @Min=@Min+1
end

select @Min


 
MOA   (2003-02-03 14:00) [6]

Например, так:

SELECT MIN(t.A) from t AS t WHERE NOT EXISTS (SELECT * FROM t AS t1 WHERE t1.A=t.A)

Удачи!


 
MOA   (2003-02-03 14:03) [7]

Ошибся, прошу прощения...


 
Владислав   (2003-02-03 14:04) [8]

select top 1 t1.A + 1
from table1 t1
where not exists(
select *
from table1 t2, table1 t3
where t2.A = t3.A - 1
and t1.A = t2.A
)
order by t1.A


 
MOA   (2003-02-03 14:07) [9]

Вот так:

SELECT MIN(t.A+1) from t AS t WHERE NOT EXISTS (SELECT * FROM t AS t1 WHERE t1.A=(t.A+1))



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
8-63694
artemkin
2002-11-07 18:52
2003.02.20
Замочите - если не прав!!!


4-63918
AlexG
2003-01-09 09:12
2003.02.20
ListView


6-63711
V.I.P.
2002-12-29 00:39
2003.02.20
TWebBrowser и Mouse


14-63818
Сатир
2003-02-03 22:55
2003.02.20
Помогите с Юниксом


1-63632
iNew
2003-02-11 07:28
2003.02.20
Коприую файл с винта на дискету. Как проверить нормально





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский