select A.*,B.CODE
from T A,(SELECT ROWNUM+9 FROM DUAL WHERE ROWNUM+9<=
    (SELECT MAX(gradecode) CODE FROM T))B
WHERE A.gradecode>=B.CODE

解决方案 »

  1.   

    写错是connect by
    select A.*,B.CODE
    from T A,(SELECT ROWNUM+9 FROM DUAL CONNECT BY ROWNUM+9<=
        (SELECT MAX(gradecode) CODE FROM T))B
    WHERE A.gradecode>=B.CODE
      

  2.   

    运行以后输出的gradecode行数对了,但是数值都一样啊,这样变成重复数据了。我想要的是,比如gradcode是13,输出的四行数据gradecode分别为10,11,12,13.其他内容相同呀
      

  3.   

    用B.CODE 替换A.gradecode就行了
    select A.ID,B.CODE AS gradecode
    from T A,(SELECT ROWNUM+9 FROM DUAL CONNECT BY ROWNUM+9<=
        (SELECT MAX(gradecode) CODE FROM T))B
    WHERE A.gradecode>=B.CODE
      

  4.   

    select A.ID,B.CODE AS gradecode
    from T A,(SELECT ROWNUM+9 CODE FROM DUAL CONNECT BY ROWNUM+9<=
        (SELECT MAX(gradecode) FROM T))B
    WHERE A.gradecode>=B.CODE
      

  5.   

    改成a.gradecode后,数据还是没变啊,感觉要用curor啊
      

  6.   

    自己建结构测试了下,没什么问题啊
    表T 字段 N 4条记录10~13
    测试语句
    select A.*,B.CODE AS gradecode
    from T A,(SELECT ROWNUM+9 CODE FROM DUAL CONNECT BY ROWNUM+9<=
        (SELECT MAX(N) FROM T))B
    WHERE A.N>=B.CODE
    ORDER BY N,B.CODE
    测试结果
    N       gradecode
    10.00 10
    11.00 10
    11.00 11
    12.00 10
    12.00 11
    12.00 12
    13.00 10
    13.00 11
    13.00 12
    13.00 13
      

  7.   

    是不是非得写成这样才能看懂啊,就一点不知道变通吗?
    前几年回帖都是只要给出思路就够了,现在给出基本代码都不行,真头疼
    select A.ID,B.CODE AS gradecode,A.XXXXX--表的其他字段
    from T A,(SELECT ROWNUM+9 CODE FROM DUAL CONNECT BY ROWNUM+9<=
        (SELECT MAX(gradecode) FROM T))B
    WHERE A.gradecode>=B.CODE
    ORDER BY A.ID,B.CODE
      

  8.   

    不好意思啊 前面看错了。因为查的a.*。把a和b的gradecode搞混了 不好意思啊