| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Первое несуществующее число |
| Автор: Гость_Vasya 13.5.2005, 11:35 |
| Здраствуйте! Есть таблица с полем, в котором хранятся уникальные числа. Требуется найти первое число , которого не в таблице, причем оно меньше максимального, например: из чисел 1, 2, 5 требуется найти 3. Как это осуществить с помощью SQL запроса? Спасибо! |
| Автор: Akina 13.5.2005, 12:26 |
| Никак. SQL умеет делать выборку только из существующих данных, а ты хочешь получить НЕСУЩЕСТВУЮЩИЕ. |
| Автор: gas1979 13.5.2005, 13:02 |
| а если выборка: 1, 2, 3, 5, 6, 8, 10 то какое число: 4 или 9 из sql ты не вытащишь не одно не другое, но если вытащишь существующие то программно если 4, то перебором и условием присвой новое число если 9, то в обратную сторону |
| Автор: igon 13.5.2005, 14:43 | ||||
Например, так
или так
|
| Автор: Akina 13.5.2005, 15:09 |
| igon 1) Не каждый SQL поддерживает Minus 2) На таблице с контентом 2, 3, 5, 6 он даст не 1, а 4... |
| Автор: Vit 15.5.2005, 10:19 |
| Сделать ещё одну таблицу со всеми числами и делать запрос уже из двух таблиц |
| Автор: igon 15.5.2005, 16:02 | ||||
to Akina
В вопросе не указана БД, к сожалению. Не указана, однако, и потребность в универсальном SQL запросе, пригодном для любых БД. В случае неподдержки Minus - второй вариант
Граничные условия я и не пытался рассматривать, чтобы не усложнять. Так, приведенные Select`ы некорректно сработают и для последовательности без "дырок" (выдадут ID, бОльший максимального). |