Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何查找缺失的最小序列号_Sql_Sql Server - Fatal编程技术网

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)