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

SQL文的应用如何取最小的编号
现在表中的数据有一条编号的字段。。。每次追加数据,想从1到999之间没有被其他数据所占用的数字作为这条数据的编号来使用。。。
相请教大神。。。获得编号这个SQL文应该怎么写。。。

------解决方案--------------------
SELECT ABS(MOD(DBMS_RANDOM.RANDOM,1000)) id from table_dual where id not in 
(select id from table_dual)
------解决方案--------------------
select level from dual connect by level <1000
minus
select distinct a from tmp_table where a between 1 and 1000

------解决方案--------------------
select min(l) l
  from (select level l from dual connect by level < 1000) t
 where l not in (select distinct l from table_name)

------解决方案--------------------

with simo_sd as
 (select 1 as id from dual
  union all
  select 2 from dual
  union all
  select 3 from dual
  union all
  select 19 from dual
  union all
  select 433 from dual)

--查询语句
select min(lv)
  from (select level as lv from dual connect by level <= 999) d
 where not exists (select 1 from simo_sd f where d.lv = f.id);