having和where的区别

Posted Howie_Tang

tags:

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

区别:

where:语句条件字段,必须是“数据表中存在的”字段

having:语句条件字段  必须是查询结果集中存在的字段

 

having()设置sql语句查询条件

group by 就使用having

 

where 和 having都可以设置查询条件,两种在某些场合可以通用

where:条件字段必须是“数据表” 存在字段

having:条件字段必须是“结果集”中的字段

 

一、两者可以通用

select * from goods where goods_price > 1000;

select * from goods where goods_price >1000;

 

二、只能用where (不能用having)

select goods_id,goods_name from goods where goods_price > 1000;

select goods_id,goods_name from goods having goods_price > 1000;//错误,因为结果集中没有goods_price

 

三、只能用having(不能用where)

select goods_brand_id,count(*) as cnt from goods having cnt > 3;

selecct goods_brand_id,count(*) as cnt from goods where cnt > 3;//错误,因为表中没有cnt

 

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

SQL中WHERE 和HAVING的区别

SQL中的HAVING和WHERE有啥区别?

having和where的区别

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

在oracle中where 子句和having子句中的区别

数据库中where与having区别~~~