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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-67797
guest0
2003-07-04 08:03
2003.07.21
Горячие клавиши


1-67759
BelCaesar
2003-07-08 19:44
2003.07.21
С канвы на принтер или в bmp файл!


14-68065
Ihor Osov'yak
2003-07-05 15:11
2003.07.21
exploit.java.bytverify


4-68120
jonni
2003-05-21 00:03
2003.07.21
Kak otlovit iconku ot application


3-67719
Till
2003-06-20 14:19
2003.07.21
IBDatabase





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский