共計 788 個字符,預計需要花費 2 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章主要介紹“sql 語句中 where 和 having 的區別是什么”,在日常操作中,相信很多人在 sql 語句中 where 和 having 的區別是什么問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”sql 語句中 where 和 having 的區別是什么”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
HAVING 是先分組再篩選記錄,WHERE 在聚合前先篩選記錄.也就是說作用在 GROUP BY 子句和 HAVING 子句前;而 HAVING 子句在聚合后對組記錄進行篩選。
作用的對象不同。WHERE 子句作用于表和視圖,HAVING 子句作用于組。WHERE 在分組和聚集計算之前選取輸入行(因此,它控制哪些行進入聚集計算),而 HAVING 在分組和聚集之后選取分組的行。因此,WHERE 子句不能包含聚集函數;因為試圖用聚集函數判斷那些行輸入給聚集運算是沒有意義的。相反,HAVING 子句總是包含聚集函數。(嚴格說來,你可以寫不使用聚集的 HAVING 子句,但這樣做只是白費勁。同樣的條件可以更有效地用于 WHERE 階段。)比如說:
select * from tablename where id 和
select * from tablename having id 1
這兩者是查詢結果是沒有區別的。不建議使用 having
總結就兩句話:
WHERE 語句在 GROUPBY 語句之前;SQL 會在分組之前計算 WHERE 語句。
HAVING 語句在 GROUPBY 語句之后;SQL 會在分組之后計算 HAVING 語句。
到此,關于“sql 語句中 where 和 having 的區別是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!
向 AI 問一下細節