sql中where和having之间的区别

在SQL中,WHERE和HAVING都是用于限制查询结果的条件子句,但它们之间有一些重要的区别:

WHERE子句:

WHERE子句用于在对表进行筛选之前对行进行过滤。
它通常出现在SELECT、UPDATE或DELETE语句中的FROM子句之后。
WHERE子句使用表的列来评估条件,并基于这些条件决定哪些行应该包含在结果集中。
WHERE子句可以使用比较运算符(如等号、大于、小于等)、逻辑运算符(如AND、OR)和通配符(如LIKE)。
WHERE子句只能引用表中的列,不能引用聚合函数或GROUP BY列。
HAVING子句:

HAVING子句用于在对聚合函数进行计算之后对结果进行过滤。
它通常出现在SELECT语句的GROUP BY子句之后。
HAVING子句使用聚合函数和GROUP BY列来评估条件,并决定哪些组应该包含在结果集中。
HAVING子句可以使用比较运算符、逻辑运算符和聚合函数。
HAVING子句可以引用聚合函数和GROUP BY列,但不能引用表中的其他列。
总结:

WHERE子句用于对表的行进行过滤。
HAVING子句用于对聚合函数计算后的结果进行过滤。
请注意,WHERE子句通常出现在SELECT、UPDATE或DELETE语句中,而HAVING子句只能与GROUP BY一起使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值