首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查找丢失的最小序列号

如何查找丢失的最小序列号
EN

Stack Overflow用户
提问于 2019-03-18 13:32:31
回答 3查看 89关注 0票数 3

我有一个表,上面有序列号。

我想要找到丢失的序列号,它是丢失的数字中的最小序列号。

代码语言:javascript
复制
For eg.,

Seq No: 1,2,3,5,7,9 ==> Expected result: 4
Seq No: 1,2,3,4,5,6,7,9,15 ==> Expected result: 8
EN

回答 3

Stack Overflow用户

发布于 2019-03-18 13:37:25

您可以尝试使用row_number()

代码语言:javascript
复制
with cte as
(
select seq,seq-row_number() over(order by seq) as diff
from tablename
)
select * from cte where diff<>0 and diff in (select min(diff) from cte where diff<>0)
票数 2
EN

Stack Overflow用户

发布于 2019-03-18 13:48:38

使用row_number()生成新序列,并将其与原始序列进行比较

代码语言:javascript
复制
select  min(new_seq)
from
(
    select  *, new_seq = row_number() over (order by seq)
    from    your_table
) t
where   seq <> new_seq
票数 2
EN

Stack Overflow用户

发布于 2019-03-18 13:58:52

选择不存在序列号加1的最小序列号,然后添加1:

代码语言:javascript
复制
select min(seqNo)+1 from SeqNoTable where seqNo+1 not in (select SeqNo from SeqNoTable)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55215038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档