我有一个巨大的桌子,里面装满了数字(1001001..1009999),在那个区域肯定有一堆未使用的数字。所以,我可以通过以下方式返回所有这些数字:
SELECT MY_IDENTIFIER FROM MY_TABLE
将返回所有使用过的数字。我如何从该表中获取未使用的数字列表?我使用JavaScript工作服务器(rhino / jaxer),我的数据库是Oracle 10g。
谢谢,
答案 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);