因为lorder字段没有被包括在distinct过滤的字段列表中,也就是说,同一组id,name从语法上将无法保证只对应一个lorder值,而当(id,name)与lorder为一对多关系时,order by lorder从逻辑上自然是错误的。

解决方案 »

  1.   

    是不是有逻辑错误啊?
    我有一张表B
           ID PN
    --------- ----------
            1 a3
            1 a2
            1 a1
            3 c1
            2 b2
            2 b1
            3 c2
            3 c3
    当我写SELECT distinct id,pn FROM B order by pn;
    运行没有问题:
           ID PN
    --------- ----------
            1 a1
            1 a2
            1 a3
            2 b1
            2 b2
            3 c1
            3 c2
            3 c38 rows selected
    如果我写SELECT distinct id FROM B order by pn;ORA-01791: 不是 SELECTed 表达式
    就会出错
    我想是不是你的LORDER也像PN一样。
    LZ是想让表实现什么啊?
      

  2.   

    2楼的对了!
    group by 和 order by 一样
      

  3.   

    order by pn
    是想一下,如果数据是这样子的呢?
           ID PN
    --------- ----------
            1 a1
            1 b2
            1 a3
            2 b1
            2 b2
            3 c1
            3 c2
            3 c3
    怎么会知道怎么排序.