一张表 id, name, gender, salery

在大多数情况下,where和having是可以等价使用的,比如下面的情况就是等价的:

select id,name,gender where gender=''
select id, name,gender having gender=''

或者:

select id,name,gender where id>5
select id,name,gender having id>5

但是下面的情况就会出现不同。

区别1:

select id,name,gender where salery>50这个是可以正常运行的,可是
select id,name,gender having salery>50 就会报错,因为having的字段必须再select的字段中出现

区别2:

select id as a, name as b,gender as c where a>50 这个就要报错,因为where不能直接使用别名
select id as a, name as b,gender as c having a>50 这个就可以正确查询出数据,因为having可以直接使用别名

区别3:having 后面可以跟聚合函数,where就不可以

 

参考:

 

相关文章:

  • 2022-12-23
  • 2021-07-21
  • 2021-12-21
  • 2022-12-23
  • 2021-06-25
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-04-21
  • 2022-12-23
  • 2022-12-23
  • 2021-07-01
  • 2021-12-02
相关资源
相似解决方案