日期:2014-05-17  浏览次数:20852 次

select sum(1) from dual where 1=2为什么会返回一条数据?
RT,搞不懂...在线等大神
------解决方案--------------------
引用:
为什么你们都说聚合函数一定会返回一条记录呢,可是我加了个group by之后就真没记录了,是oracle版本问题么,我的是10g的



  首先 你要了解oracle的执行顺序  group by和聚合函数的先后顺序  LZ觉得对空值分组求和 还会有数据么 
------解决方案--------------------
引用:
大概是这意思,我现在搞不懂的是select sum(1) from dual where 1=2 group by 1,为什么就不返回空记录了呢

引用:

因为类似的聚合函数 不管有没对应的值 至少都会返回一条记录

你现在的疑惑出现在group by身上
group by 是对from 、where等过滤出来的结果集进行聚合:
    1)不加group by是全部,就算找不到,对sum,count,min,max也会返回一行,是空值
    2)加了group by,如果没有找到,那是不返回的