sql – 如何从一系列数字中检查任何丢失的数字?

前端之家收集整理的这篇文章主要介绍了sql – 如何从一系列数字中检查任何丢失的数字?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在做一个创建大学录取制度的项目;这些技术是 Java和Oracle.

在其中一个表中,存储了预生成的序列号.后来,针对这些序列号,将输入申请人的表格数据.我的要求是,入场过程完成后,我必须生成一份很明智的报告.如果在喂食预生成的序列号期间,任何序列号丢失.

例如,如表所示,序列号是7001,7002,7004,7005,7006,7010.
从上述系列中可以清楚的是,从7001到7010,缺少的数字是7003,7007,7008和7009

Oracle中是否有可用的DBMS功能来找出这些数字,或者任何存储过程可能达到我的目的,那么请提出一个算法.

我可以在Java中找到一些技术,但是我想要在Oracle中找到解决方案.

解决方法

没有硬编码的解决方案9:
select min_a - 1 + level
     from ( select min(a) min_a,max(a) max_a
              from test1
          )
  connect by level <= max_a - min_a + 1
    minus
   select a
     from test1

结果:

MIN_A-1+LEVEL
-------------
         7003
         7007
         7008
         7009

4 rows selected.

猜你在找的MsSQL相关文章