Oracle SQL,范围在1-1000之间

Oracle SQL,范围在1-1000之间,sql,Sql,我有一个包含数字的表,范围在1-1000之间,它们是唯一的,但我需要使用Oracle SQL确定表中1-1000范围内缺少哪些数字 1,3,4,5,6,8,9,10 结果2,7 有人能帮我写一个脚本或一个脚本的URL吗 您可以使用: select level from dual connect by level<=1000 minus select mycolumn from mytable 编辑: 要找出序列中没有硬编码1000的数字,请执行以下操作: select level fro

我有一个包含数字的表,范围在1-1000之间,它们是唯一的,但我需要使用Oracle SQL确定表中1-1000范围内缺少哪些数字

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

结果2,7

有人能帮我写一个脚本或一个脚本的URL吗

您可以使用:

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
尝试:


11、12等呢?他们不也失踪了吗?不,因为计数还没有达到那么高,但我可以用maxSheetNo作为高点。
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)
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;