我有一个包含数字的表,范围在1-1000之间,它们是唯一的,但是我需要使用Oracle SQL从表中确定1-1000范围内缺少的数字,
1,3,4,5,6,8,9,10
结果2,7
任何人都可以帮助处理脚本的脚本或URL。
答案 0 :(得分:2)
您可以使用:
select level from dual
connect by level<=1000
minus
select mycolumn from mytable
编辑:
要找出没有硬编码1000的序列中缺少哪些数字:
select level from dual
connect by level < (select max(mycolumn) from mytable)
minus
select mycolumn from mytable
答案 1 :(得分:0)
尝试:
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)
答案 2 :(得分: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;