2012-02-15 3 views
0

У меня есть таблица, содержащая числа, от 1 до 1000, они уникальны, но мне нужно определить, какое число из них отсутствует в диапазоне 1-1000 из таблицы, используя Oracle SQL ,Oracle SQL, диапазон между 1-1000

1,3,4,5,6,8,9,10

результат 2,7

Может кто-нибудь помочь с помощью сценария или URL в скрипте.?

+2

Как насчет 11, 12 и т. Д.? Разве они тоже не пропали? –

+0

Нет, поскольку счет еще не получил такой высокий уровень, но я могу использовать max (SheetNo) как верхнюю точку. – icecurtain

ответ

2

Вы могли бы использовать:

select level from dual 
connect by level<=1000 
minus 
select mycolumn from mytable 

EDIT:

Чтобы узнать, какие номера отсутствуют последовательности без закодированного 1000:

select level from dual 
connect by level < (select max(mycolumn) from mytable) 
minus 
select mycolumn from mytable 
+0

+1 за минус. Хорошая идея –

+0

Это то, что мне нужно. – icecurtain

0

Try:

select a.check_number 
from (select level check_number from dual connect by level <= 1000) a 
where not exists 
(select null from myTable t where a.check_number = t.lookup_number) 
0
with numbers as (
    select level as i 
    from dual 
    connect by level <= (select max(some_number) from your_table) 
) 
select nr.i as missing 
from numbers nr 
    left join your_table yt on yt.some_number = nr.i 
where yt.some_number is null; 
Смежные вопросы