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不能使用

posted on 2018-09-26 11:06  刷哥  阅读(4288)  评论(2编辑  收藏  举报

导航