首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

select * from A group by _ 填什么跟select * from A 查出的结果 一样

2013-07-16 
select * from A group by ____ 填什么和select * from A查出的结果 一样需要对表无意义的分组。就是说sele

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

横线上应该填什么呢? SQL
[解决办法]
SQL> select * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL> select * from dept group by deptno,dname,loc;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        20 RESEARCH       DALLAS
        40 OPERATIONS     BOSTON
        10 ACCOUNTING     NEW YORK
        30 SALES          CHICAGO

[解决办法]
常量吧,一般null
[解决办法]
group by所有列

[解决办法]
group by 可以不是所有列的。
[解决办法]
group必须取唯一,所以要不唯一,则必须人工给予一个不是唯一的东西。
至于常量,NULL,那是不行的,通不过语法监测。
-------------------------

可以 有个简单的语法,基本可以保证是一致的。
譬如
select col1,col2....coln  from tab group by col1,col2....coln,sys_guid().


关键在SYS_GUID(),如果换成rowid也将将可以。



[解决办法]
with tb as
(select mod(level,4) id from dual connect by level <=20)
select * from tb a group by a.id,rownum

热点排行