在一堆数字中找到一个未使用的数字

时间:2010-12-20 22:26:20

标签: javascript sql oracle oracle10g

我有一个巨大的桌子,里面装满了数字(1001001..1009999),在那个区域肯定有一堆未使用的数字。所以,我可以通过以下方式返回所有这些数字:

SELECT MY_IDENTIFIER FROM MY_TABLE

将返回所有使用过的数字。我如何从该表中获取未使用的数字列表?我使用JavaScript工作服务器(rhino / jaxer),我的数据库是Oracle 10g。

谢谢,

2 个答案:

答案 0 :(得分:3)

以下查询将为您提供所需内容:

SELECT seq_num
  FROM (SELECT (lvl + &&v_from - 1) seq_num
          FROM (SELECT *
                  FROM (    SELECT LEVEL lvl
                              FROM DUAL
                        CONNECT BY LEVEL <= (&&v_to - &&v_from) + 1)))
 WHERE seq_num NOT IN (SELECT my_identifier FROM my_table);

用您的边界号替换&amp;&amp; v_to和&amp;&amp; v_from。

参考:http://oraqa.com/2006/01/20/how-to-generate-sequence-numbers-between-two-numbers/

答案 1 :(得分:1)

Javascript与此无关,不是吗? 我做了几年前做过的事情。

我有一个包含范围内所有数字的表,并加入了这两个表并选择了那些无法连接的数字。否定选择。

这样的东西
 select nr bulk collect into nrs1 from tbl1 where nr not in
                (select nr from tbl2);