oracl查询缺失的数

with tab as (  
  select ‘2001’  d from dual union all  
  select ‘2002’  d from dual union all  
  select ‘2003’  d from dual union all  
  select ‘2006’ d from dual union all  
  select ‘2007’ d from dual union all  
  select ‘2008’ d from dual)
SELECT SS
  FROM (SELECT SN + (level - 1) SS
              FROM (select min(d) SN,max(d) EN from tab) T
        CONNECT BY SN + (level - 1) <= EN)
WHERE SS NOT IN (SELECT d FROM tab)

如果需要最大数或者最小数加个max或者min就行了

原文地址:https://www.cnblogs.com/IceBlueBrother/p/13936581.html