我有大约10k个顺序整数值的列表,这些值应该从外部应用程序插入到表列中。但是,执行COUNT()会显示仅插入了9900。
我需要确定未插入序列中的哪些数字。
以另一种方式使用它很容易,只需从值介于x和y之间的表列中进行选择,但我还没有弄清楚如何打印(或选择)表列中不存在的值
编辑:从下面的整数中删除多余的
it
如何从BETWEEN子句中打印出其中column2在范围内没有值的值?
答案 0 :(得分:5)
您可以执行以下操作:
select level num
from dual
connect by level <= 10000
minus
select column2
from your_table;
如果column2是varchar2列,则可能需要执行to_char(level)
。
答案 1 :(得分:1)
您需要使用数字来源。如果此表仅是您的数据,则可以使用它:
with n as (
select rownum as n
from t cross join
(select 1 from dual union all select 2 from dual) x
)
select n.n
from n left join
t
on n.n = t.column2 and t.column1 = 'value'
where n <= 10000;
对于n
的计算假设您的表至少有5,000行。如果数量超过10,000,则不需要x
。