Найти неиспользуемый номер в связке чисел - PullRequest
1 голос
/ 21 декабря 2010

У меня огромная таблица, заполненная числами (1001001..1009999), и в этой области определенно есть куча неиспользуемых чисел. Итак, я мог бы получить все эти числа, выполнив:

SELECT MY_IDENTIFIER FROM MY_TABLE

, который вернул бы все использованные числа. Как я могу получить список неиспользуемых номеров из этой таблицы? Я работаю на сервере (Rhino / Jaxer) с JavaScript, и моя база данных Oracle 10g.

Спасибо

Ответы [ 2 ]

3 голосов
/ 21 декабря 2010

Следующий запрос даст вам то, что вам нужно:

SELECT seq_num
  FROM (SELECT (lvl + &&v_from - 1) seq_num
          FROM (SELECT *
                  FROM (    SELECT LEVEL lvl
                              FROM DUAL
                        CONNECT BY LEVEL <= (&&v_to - &&v_from) + 1)))
 WHERE seq_num NOT IN (SELECT my_identifier FROM my_table);

Замените && v_to и && v_from на ваши номера границ.

Ссылка: http://oraqa.com/2006/01/20/how-to-generate-sequence-numbers-between-two-numbers/

1 голос
/ 21 декабря 2010

Javascript не имеет к этому никакого отношения, не так ли?Я делал что-то похожее несколько лет назад.

У меня была таблица со всеми числами в диапазоне, я соединил эти две таблицы и выбрал те числа, которые нельзя объединить.Отрицательный выбор.

Что-то вроде

 select nr bulk collect into nrs1 from tbl1 where nr not in
                (select nr from tbl2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...