国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > 文庫 > 正文

sql語句中where和having的區別

2020-10-29 21:52:03
字體:
來源:轉載
供稿:網友
HAVING是先分組再篩選記錄,WHERE在聚合前先篩選記錄.也就是說作用在GROUP BY 子句和HAVING子句前;而 HAVING子句在聚合后對組記錄進行篩選。

作用的對象不同。WHERE 子句作用于表和視圖,HAVING 子句作用于組。WHERE 在分組和聚集計算之前選取輸入行(因此,它控制哪些行進入聚集計算), 而 HAVING 在分組和聚集之后選取分組的行。因此,WHERE 子句不能包含聚集函數; 因為試圖用聚集函數判斷那些行輸入給聚集運算是沒有意義的。 相反,HAVING 子句總是包含聚集函數。(嚴格說來,你可以寫不使用聚集的 HAVING 子句, 但這樣做只是白費勁。同樣的條件可以更有效地用于 WHERE 階段。)比如說:

select * from tablename where id > 1; 和

select * from tablename having id > 1

這兩者是查詢結果是沒有區別的。不建議使用having

總結就兩句話:

WHERE語句在GROUPBY語句之前;SQL會在分組之前計算WHERE語句。
HAVING語句在GROUPBY語句之后;SQL會在分組之后計算HAVING語句。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长丰县| 海原县| 西平县| 惠安县| 长汀县| 江达县| 周口市| 高台县| 东乡族自治县| 郴州市| 景洪市| 侯马市| 石城县| 英山县| 平江县| 濮阳县| 祁东县| 菏泽市| 故城县| 文山县| 县级市| 尚志市| 察隅县| 吴江市| 邢台市| 合肥市| 仁寿县| 台东市| 阜城县| 甘德县| 读书| 奈曼旗| 临沂市| 饶平县| 九寨沟县| 黔西县| 和田县| 关岭| 杨浦区| 茂名市| 南澳县|