select * from departments
minus
(select * from departments
where rownum <6 
)这么写没问题 可以得到正确结果
但是我想加order by 却出现错误
请问 order by应该加在哪里才不会出现错误呢

解决方案 »

  1.   

    -- 其中:column_name 是此表你想要排序的字段!
    select * from (
      select * from departments
      minus
      select * from departments
      where rownum <6 ) t
    order by column_name;
      

  2.   


    select * from departments
    minus
    (select * from departmentswhere rownum < 6)
     order by 1
      

  3.   

    使用
    SELECT *
      FROM SCM_CUSTPROD_HDR
    MINUS (SELECT * FROM SCM_CUSTPROD_HDR WHERE ROWNUM < 6)
     ORDER BY 1
    或者
    SELECT CUSTPRODHDR_KEY, SCMGROUP_ID
      FROM SCM_CUSTPROD_HDR
    MINUS (SELECT CUSTPRODHDR_KEY, SCMGROUP_ID FROM SCM_CUSTPROD_HDR WHERE ROWNUM < 6)
     ORDER BY CUSTPRODHDR_KEY直接使用*不能识别。
      

  4.   

    几种集合操作 除了union all 之外
    minus
    intersect
    union 
    默认都是触发排序操作的
    默认的排序列是第一列
      

  5.   


    -- 这样的语句,不就可以写成:select * from (
      select * from departments
      where rownum >=6  ) t
    order by ......
      

  6.   

    啊 在这遇到BOSS啦 - -   boss你好 ..........