各位老大,WHERE和HAVING可以同时在SQL中使用吗?有何禁忌?

ahuige 2004-12-20 03:01:24
各位老大,WHERE和HAVING可以同时在SQL中使用吗?有何禁忌?
能否全用HAVING,不用WHERE?
...全文
2568 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyguo 2004-12-20
  • 打赏
  • 举报
回复
楼上兄弟的解释是一个方面,其实WHERE 和 HAVING的最大区别是它们参与过滤的次序不同(只有在分组的情况下才使用HAVING),举个例子:
列出税额大于3000姓李的用户
select name,sum(tax) from taxdbt where name like '李%' group by name having sum(tax)>3000
首先按姓名统计所有姓李的税额,再过滤出大于3000的记录。lfny

你是不是做税务方面软件的
DebugXP 2004-12-20
  • 打赏
  • 举报
回复
having一般和Group by语句一起用
如果用group by分组的话,可以把having当作分组后的过滤。
cdsgajxlp 2004-12-20
  • 打赏
  • 举报
回复
select count(*) as sl,s2 from tablename where a1>1000
group by s1 having count(*)>1

s3,a1为库中的字段
gobiz 2004-12-20
  • 打赏
  • 举报
回复
应该是可以的(在嵌套查询里面可以的),如果是非嵌套的一条查询中应该是不能用的!
wizardqi 2004-12-20
  • 打赏
  • 举报
回复
楼上兄弟的解释是一个方面,其实WHERE 和 HAVING的最大区别是它们参与过滤的次序不同(只有在分组的情况下才使用HAVING),举个例子:
列出税额大于3000姓李的用户
select name,sum(tax) from taxdbt where name like '李%' group by name having sum(tax)>3000
首先按姓名统计所有姓李的税额,再过滤出大于3000的记录。
dejiang 2004-12-20
  • 打赏
  • 举报
回复
汇总函数不能工作在WHERE 子句中,如果条件中有汇总函数的话需要使用HAVING
lencon 2004-12-20
  • 打赏
  • 举报
回复
可以同时使用,
一般来说先用WHERE,后用HAVING
对查询的结果再过滤

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧