程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL 中having 和where的差別剖析

SQL 中having 和where的差別剖析

編輯:MSSQL

SQL 中having 和where的差別剖析。本站提示廣大學習愛好者:(SQL 中having 和where的差別剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL 中having 和where的差別剖析正文


在select語句中可使用groupby子句將行劃分紅較小的組,然後,應用聚組函數前往每個組的匯總信息,別的,可使用having子句限制前往的成果集。groupby子句可以將查詢成果分組,並前往行的匯總信息Oracle依照groupby子句中指定的表達式的值分組查詢成果。
在帶有groupby子句的查詢語句中,在select列表中指定的列要末是groupby子句中指定的列,要末包括聚組函數

selectmax(sal),jobempgroupbyjob;

(留意max(sal),job的job並不是必定要湧現,但成心義)
查詢語句的select和groupby,having子句是聚組函數獨一湧現的處所,在where子句中不克不及應用聚組函數。

selectdeptno,sum(sal)fromempwheresal>1200groupbydeptnohavingsum(sal)>8500orderbydeptno;

當在gropuby子句中應用having子句時,查詢成果中只前往知足having前提的組。在一個sql語句中可以有where子句和having子句。having與where子句相似,均用於設置限制前提
where子句的感化是在對查詢成果停止分組前,將不相符where前提的行去失落,即在分組之前過濾數據,前提中不克不及包括聚組函數,應用where前提顯示特定的行。
having子句的感化是挑選知足前提的組,即在分組以後過濾數據,前提中常常包括聚組函數,應用having前提顯示特定的組,也能夠應用多個分組尺度停止分組。
查詢每一個部分的每種職位的雇員數

selectdeptno,job,count(*)fromempgroupbydeptno,job;

假如你對什麼時候應當應用WHERE,什麼時候應用HAVING仍然很困惑,請遵守上面的解釋:
WHERE語句在GROUPBY語句之前;SQL會在分組之前盤算WHERE語句。
HAVING語句在GROUPBY語句以後;SQL會在分組以後盤算HAVING語句。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved