需要对表无意义的分组。
就是说  select * from A   查出的结果  
和 select * from A group by ____   查出来的结果一样。横线上应该填什么呢?SQL

解决方案 »

  1.   

    SQL> select * from dept;    DEPTNO DNAME          LOC
    ---------- -------------- -------------
            10 ACCOUNTING     NEW YORK
            20 RESEARCH       DALLAS
            30 SALES          CHICAGO
            40 OPERATIONS     BOSTONSQL> select * from dept group by deptno,dname,loc;    DEPTNO DNAME          LOC
    ---------- -------------- -------------
            20 RESEARCH       DALLAS
            40 OPERATIONS     BOSTON
            10 ACCOUNTING     NEW YORK
            30 SALES          CHICAGO
      

  2.   

    group by 可以不是所有列的。
      

  3.   

    group必须取唯一,所以要不唯一,则必须人工给予一个不是唯一的东西。
    至于常量,NULL,那是不行的,通不过语法监测。
    -------------------------可以 有个简单的语法,基本可以保证是一致的。
    譬如
    select col1,col2....coln  from tab group by col1,col2....coln,sys_guid().
    关键在SYS_GUID(),如果换成rowid也将将可以。
      

  4.   

    with tb as
    (select mod(level,4) id from dual connect by level <=20)
    select * from tb a group by a.id,rownum
      

  5.   

    这个真不合适SELECT * FROM A GROUP BY ____;除非你的A只有一列,否则如何编译过去?
      

  6.   

    弄错了,group by null用于mysql的
      

  7.   

    group by null 貌似不支持
    这边你只能把 所有列都写出来了 
      
      

  8.   

    答案是null也可以的话,估计是书上的sql题目,不需要结合oracle实际应用。
    以前用mysql倒是经常这样写。