sql - 查找丢失的序列号

标签 sql oracle oracle11g sequence

我想创建一个表来查找缺失的序号。 0到70000之间的序号,到达70000后变为0。在特定的时间段内,我需要找到那些丢失的记录。

最佳答案

此解决方案基于生成从 1 到您设置的某个限制的所有自然数的语句:

SELECT ROWNUM N FROM dual CONNECT BY LEVEL <= 7000

此解决方案的第二部分是 Oracle MINUS 运算符(通常称为 EXCEPT),旨在减去集合。

换句话说,最终查询是:

SELECT ROWNUM id FROM dual CONNECT BY LEVEL <= 7000
MINUS
SELECT id FROM mytable

SQLFiddle demo for 20 numbers .

关于sql - 查找丢失的序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19603164/

相关文章:

mysql - mysql中如何合并两个字段值

MySQL 左连接限制为一行

mysql - 查询执行涉及的步骤

sql - Oracle简单更新语句,性能差

用于查找唯一列和连接两列结果的 SQL 查询

sql - 如何获取表的 SQL 脚本?

sql - 将不在聚合函数中的列保留在 group by 语句中

sql - oracle中的真实表空间大小

c# - OracleCommand 无法将 0 转换为 bool 值

database - 有没有办法审计对数据库执行的任何操作?