having 和 where的区别

Posted wangshuazi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了having 和 where的区别相关的知识,希望对你有一定的参考价值。

区别1

where是从数据表中的字段直接进行的筛选的。

having是从 前面筛选的字段再筛选

eg:  select goods_price,goods_name from goods having  goods_price > 100

                     等价于  

       select goods_price,goods_name from goods where goods_price > 100

 

select goods_name,goods_number from goods having  goods_price > 100   

// 报错!!!因为前面并没有筛选出 goods_price 字段

 

区别2

having子句中可以使用字段别名,而where不能使用

 

区别3

having能够使用统计函数,先分组,再判断(having),但是where不能使用

以上是关于having 和 where的区别的主要内容,如果未能解决你的问题,请参考以下文章

SQL中的HAVING和WHERE有啥区别?

having和where的区别

GROUP BY,WHERE,HAVING之间的区别和用法

GROUP BY,WHERE,HAVING之间的区别和用法

数据库中having 和where有啥区别

一文让你彻底理解having和where的区别