Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
1-67768
Луарвик
2003-07-08 19:02
2003.07.21
Смена картинки на форме...


3-67703
Status_I
2003-06-24 00:27
2003.07.21
LookUp-поле


14-68076
craker
2003-07-06 02:15
2003.07.21
Лето-времени много, игроделы объединяйтесь!!!


6-67948
Renegate
2003-05-16 09:07
2003.07.21
Вывод запушенных процессов.


9-67651
pifpaf
2003-01-30 13:10
2003.07.21
Импорт объекта с анимацией в GLScene.




   Наверх