Sql 如何查找缺失的最小序列号
我有一个表有序列号 我想找到缺失的序列号,它是缺失序列号中最小的一个Sql 如何查找缺失的最小序列号,sql,sql-server,Sql,Sql Server,我有一个表有序列号 我想找到缺失的序列号,它是缺失序列号中最小的一个 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 您可以尝试使用row_编号 利用行号生成一个新序列,并将其与原始序列进行比较 select min(new_seq) from ( select *, new_seq = row_number()
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
您可以尝试使用row_编号
利用行号生成一个新序列,并将其与原始序列进行比较
select min(new_seq)
from
(
select *, new_seq = row_number() over (order by seq)
from your_table
) t
where seq <> new_seq
选择序列号加1不存在的最小序列号,然后添加一个:
select min(seqNo)+1 from SeqNoTable where seqNo+1 not in (select SeqNo from SeqNoTable)
在这种情况下,具有适当顺序的TOP1可能比MIN工作得更快
select min(seqNo)+1 from SeqNoTable where seqNo+1 not in (select SeqNo from SeqNoTable)