各位好,
  我有一个表,tmy
startnum  endnum
 1         7
我想通过sql语句,查询到1,2,3,4,5,6,7这样的值,请问用sql语句如何实现。谢谢!

解决方案 »

  1.   

    select rownum
    from tmy
    where rownum>=startnum 
    and rownum<=endnum
      

  2.   

    select rownum
    from tmy
    where rownum>=startnum 
    and rownum<=endnum
    好像不行,我的startnum 是2009,endnum是2013,我想取出2009,2010,2011,2012,2013这样的值。
    非常感谢!
      

  3.   

    SELECT LEVEL + startnum - 1
      FROM tmy
    CONNECT BY LEVEL <= endnum - startnum + 1;
      

  4.   


    with tmy as(
    select 2009 startnum,2013 endnum from dual)
    select startnum+rownum-1
    from tmy
    connect by rownum<=(endnum-startnum)+1STARTNUM+ROWNUM-1
    -----------------
                 2009
                 2010
                 2011
                 2012
                 2013
      

  5.   


    --方式1:level+connect by level
    SQL> select 2009+level-1
      2   from dual
      3   connect by level <= (2013-2009)+1;
     
    2009+LEVEL-1
    ------------
            2009
            2010
            2011
            2012
            2013
     
    --方式2:rownum+connect by rownum
    SQL> select 2009+rownum-1
      2   from dual
      3   connect by rownum <= (2013-2009)+1;
     
    2009+ROWNUM-1
    -------------
             2009
             2010
             2011
             2012
             2013
     
    --方式3:level+connect by rownum
    SQL> select 2009+level-1
      2   from dual
      3   connect by rownum <= (2013-2009)+1;
     
    2009+LEVEL-1
    ------------
            2009
            2010
            2011
            2012
            2013
     
    --方式4:rownum+connect by level
    SQL> select 2009+rownum-1
      2   from dual
      3   connect by level <= (2013-2009)+1;
     
    2009+ROWNUM-1
    -------------
             2009
             2010
             2011
             2012
             2013