Выберите или напечатайте значения столбца, которые не существуют между двумя целыми числами - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть список из 10k последовательных целочисленных значений, которые должны были быть вставлены в столбец таблицы из внешнего приложения.Однако выполнение COUNT () показывает, что было вставлено только 9900.

Мне нужно определить, какие из чисел в последовательности НЕ были вставлены.

Использовать его наоборот просто,просто выберите из столбца таблицы, где значение находится между x и y, но я не выяснил, как напечатать (или выбрать) значения, которые не существуют в столбце таблицы.

РЕДАКТИРОВАТЬ:удалить посторонние '' из целых чисел ниже

SELECT * FROM table 
WHERE column1 = 'value'
AND column2 BETWEEN 1 AND 10000

Как вывести значение из предложения BETWEEN, когда column2 не имеет значения в диапазоне?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Вы можете сделать что-то вроде:

select level num
from   dual
connect by level <= 10000
minus
select column2
from   your_table;

Вам может потребоваться сделать to_char(level), если ваш column2 является столбцом varchar2.

0 голосов
/ 08 февраля 2019

Вам нужно использовать источник чисел.Если эта таблица является вашими единственными данными, вы можете использовать ее:

with n as (
      select rownum as n
      from t cross join
           (select 1 from dual union all select 2 from dual) x
     )
select n.n
from n left join
     t
     on n.n = t.column2 and t.column1 = 'value'
where n <= 10000;

Расчет для n предполагает, что ваша таблица содержит не менее 5000 строк.Если в нем более 10000, то x не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...