加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:39:34 所属栏目:MsSql教程 来源:网络整理
导读:我正在做一个创建大学录取制度的项目;这些技术是 Java和Oracle. 在其中一个表中,存储了预生成的序列号.后来,针对这些序列号,将输入申请人的表格数据.我的要求是,入场过程完成后,我必须生成一份很明智的报告.如果在喂食预生成的序列号期间,任何序列号丢失. 例
我正在做一个创建大学录取制度的项目;这些技术是 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读