读书人

查询表中从增长列的第一个不连续字段

发布时间: 2012-08-25 10:06:20 作者: rapoo

查询表中自增长列的第一个不连续字段

昨天以前的同事问了我一个需求,要查询指定表中自增长序列的第一个不连续的的值。

?

之前一直使用oracle,就先举出了一种oracle的方法:

select t.n from (SELECT id,ROWNUM N FROM demoinc order by id)t where t.id!=t.N and rownum=1

这条语句利用oracle内置提供的伪列rownum,应该还算高效吧。

?

后来之前的同事说不用oracle,他们正在使用sqlite。

对sqlite了解不是很多,放弃了一些性能,改用子查询实现了:

select MIN(id) from demoinc a? where not exists(select * from demoinc where id=a.id+1)

?

后来考虑了一下,估计在上层应用中使用vector加快排效率应该也会不错。

读书人网 >编程

热点推荐