where和having的區別小結

煙花丶易冷發表於2015-01-26
1、where和having都是用來篩選的
2、where是對分組前的結果進行條件過濾,而having是對分組後的結果進行過濾。
3、當分組刪選的時候,用having
4、其他用where
注:用having就一定要和group by 連用,而且group by在having的前面

而且having可以跟聚合函式,而where則不能
eg:
要求顯示平均工資大於2000的部門編號和平均工資
Select deptno,avg(sal) from emp where avg(sal)>2000 group by deptno;
出現錯誤,where語句中不允許使用分組函式,使用having解決
Select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29618264/viewspace-1415538/,如需轉載,請註明出處,否則將追究法律責任。

相關文章