having和where的性能比较

select deptno,avg(sal)

from emp

group by deptno

having deptno=10

---------------------------------------

select dpetno,avg(sal)

from emp

where deptno=10

group by deptono

---------------------------------------

也就是说(从理论上讲),where是在查询前做条件限制,having是在查询后的结果集上做条件限制。

查询前做限制的话,返回的件数会少;而在查询后的结果集上做限制的话,之前的查询结果可能会很多,这样就会影响性能。

所以,一般是用where,having是在where不方便或者不能使用的情况下才使用。


你可能感兴趣的:(oracle,database)