我想要的结果是YEAR
====
2008
2009
2010
2011

解决方案 »

  1.   


    select 2008+rownum-1 year from dual connect by rownum<=4;      YEAR
    ----------
          2008
          2009
          2010
          2011
      

  2.   


    使用extract函数抽取小就行了
    SQL> select extract(year from sysdate) from dual;EXTRACT(YEARFROMSYSDATE)
    ------------------------
                        2011SQL> 
      

  3.   


    SQL> select extract(year from to_date('2008-01-01','yyyy-mm-dd'))+level-1
      2  from dual
      3  connect by level<=extract(year from sysdate)-extract(year from to_date('2008-01-01','yyyy-mm-dd'))+1
      4  /
     
    EXTRACT(YEARFROMTO_DATE('2008-
    ------------------------------
                              2008
                              2009
                              2010
                              2011
     
      

  4.   


    select 2008 + rownum - 1  from dual connect by rownum <= to_number(to_char(sysdate,'yyyy')) - 2008 +1
    ---------------------------------------
    2008
    2009
    2010
    2011
      

  5.   


    select 2008+rownum-1 from dual connect by rownum<=to_number(to_char(sysdate,'yyyy'))-2008+1
      

  6.   

    select 2008+rownum-1 year from dual connect by rownum<=to_number(to_char(sysdate,'yyyy'))-2008+1;