SQL语句中WHERE和HAVING子句的区别



SQL语句中WHERE和HAVING子句的区别

主要区别在于作业对象不同,where子句作用于基本表或者视图,从中选择出满足条件的远足。having短语作用于组,从中选择满足条件的组。一般用再group by子句后面。

例如:

select sno

from sc

group by sno

having count(*) > 3

选择出选修了3门课以上的学生号

这里先用group by子句按sno进行分组,再用聚集函数count对每一个组技术,having短语给出了选择组的条件,只有满足条件(即元祖个数>3)的组才会被选出来。