Главная страница
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.018 c
14-67974
Dmitriy O.
2003-07-07 09:07
2003.07.21
Можно ли творить зло ради добра ?


7-68093
Berzercer
2003-05-13 16:57
2003.07.21
УБРАТЬ иконку из ALT-TAB


1-67771
bestix
2003-07-07 15:31
2003.07.21
Изменить порядок Align


4-68119
QUE
2003-05-18 16:06
2003.07.21
TTS_BALLOON - как с ним работать


1-67861
ServerXP
2003-07-07 23:56
2003.07.21
Как создать многооконную структуру программы в Delphi?