日期:2014-05-17  浏览次数:21187 次

Oracle中如何查找表中最小ID可用值
表名:BASIC   字段:ID   从1开始增加(非自动增加)的编号标志列,不可重复和空值,其他字段可重复可空值这里不考虑了;   现在的问题是:使用一段时间后如何找到表中最小可用ID值?请大家给出SQL语句,注意是单条SQL语句,不是让你写程序代码,也不要多条语句的结合。第一次发贴,虽然我已经摸索出一条方法,但是出于性能考虑,还是希望看到大家的更好语句出来,并互相探讨,共同进步。谢谢!

------解决方案--------------------
你看看这个SQL。
我家里的电脑没有Oracle环境,不能测试,你自己试试吧

Select (ID + 1) as NextID
From (
select *
from (
Select ID,RowNum as rowIndex
From theTable
Minus
Select ID,RowNum as rowIndex
From theTable
Where ID = RowNum
)
Order By ID Asc
)
Where Rownum = 1

------解决方案--------------------
完全无视偶写的东东? LZ你最后总结的东东跟偶之前写的有啥区别啊?