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就行了

posted @ 2020-11-06 14:03  Ice_Blue_Brother  阅读(114)  评论(0编辑  收藏  举报