Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.21;
Скачать: CL | DM;

Вниз

Певый свободный номер в поле таблицы.   Найти похожие ветки 

 
FormCoord   (2003-06-27 17:04) [0]

Вот собственно и весь вопрос. Дополнение: таблица большая - 76000 записей, решение хотелось бы в SQL, если это возможно...
Спасибо.


 
NDeu ©   (2003-06-27 17:13) [1]


> Певый свободный номер в поле таблицы


> решение хотелось бы в SQL

Нельзя


 
Serginio   (2003-06-27 17:18) [2]

Есть два решения данной проблемы выборка всех номеров упорядоченных по возрастанию с поиском дырок.
Второй создание второй таблицы полностью заполненной от 0 до 7600 И Select Where not in
Может есть еще SQL варианты. Первый прекрасно подходит для локальных баз.
Варианты в Select ов цикле не расматриваю.


 
Nikols ©   (2003-06-27 17:22) [3]

Можно! Здесь еще проверка на цифры...

SELECT codsample
FROM
(
SELECT lpad(min(codsample)+1,8,"0") codsample
FROM
(
SELECT * FROM nmatk a
WHERE substr(a.codsample,1,1) between "0" and "9"
) a
WHERE NOT EXISTS
(select 1 from nmatk c
where c.codsample = lpad(a.codsample + 1,8,"0")
)
)


 
Zacho ©   (2003-06-27 18:22) [4]


> Nikols © (27.06.03 17:22)

Такой запрос далеко не на всех СУБД будет работать.
А вот гораздо более простой вариант:
SELECT MIN(T1.NUM_FIELD)
FROM MY_TABLE T1
LEFT JOIN MY_TABLE T2 ON T2.NUM_FIELD=T1.NUM_FIELD+1
WHERE T2.NUM_FIELD IS NULL

По кпайней мере на IB - работает.


 
Zacho ©   (2003-06-27 18:24) [5]


> Zacho © (27.06.03 18:22)

Блин, немножко ошибся, правильно так:
SELECT MIN(T1.NUM_FIELD)+1
FROM MY_TABLE T1
LEFT JOIN MY_TABLE T2 ON T2.NUM_FIELD=T1.NUM_FIELD+1
WHERE T2.NUM_FIELD IS NULL



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

Текущий архив: 2003.07.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
1-67901
kamchatik
2003-07-07 14:03
2003.07.21
работа с Word


14-67973
zep
2003-07-05 23:45
2003.07.21
Разрыв Online


1-67818
oleg_SYS
2003-07-09 16:43
2003.07.21
Не получается выловить событие OnMouseDown.


14-67965
mipstudio
2003-06-30 14:47
2003.07.21
Есть идея написать игру...


8-67932
Dmitry Silchenko
2003-03-01 19:59
2003.07.21
Не получается