某段编号如下:1.2.3.4.6.7.9...,中间的5和8已被删除了,现在想新增记录时编号补回5和8,如果简单用循环,数据多肯定是个悲剧,经试验后用语句:
select id-1 from TABLE where id not in (select id+1 from TABLE) and id <> 1
原理是先把所有记录全+1,原记录就变成了 2.3.4.5.7.8.10...,然后NOT IN,得出1.6.9,接着加条件 id<>1,得出 6.9 ,最后再用id-1 就得出了所需要的结果,5,8.
Select MIN( id-1) FROM [TABLE] Where id not in (Select id+1 FROM [TABLE]) and id <> 1
这样就得出最小的缺值~