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

解决方案 »

  1.   

    可以同时使用,
    一般来说先用WHERE,后用HAVING
    对查询的结果再过滤
      

  2.   

    汇总函数不能工作在WHERE 子句中,如果条件中有汇总函数的话需要使用HAVING
      

  3.   

    楼上兄弟的解释是一个方面,其实WHERE 和 HAVING的最大区别是它们参与过滤的次序不同(只有在分组的情况下才使用HAVING),举个例子:
    列出税额大于3000姓李的用户
    select name,sum(tax) from taxdbt where name like '李%' group by name having sum(tax)>3000
    首先按姓名统计所有姓李的税额,再过滤出大于3000的记录。
      

  4.   

    select count(*) as sl,s2 from tablename where a1>1000 
    group by s1 having count(*)>1s3,a1为库中的字段
      

  5.   

    having一般和Group by语句一起用
    如果用group by分组的话,可以把having当作分组后的过滤。
      

  6.   

    楼上兄弟的解释是一个方面,其实WHERE 和 HAVING的最大区别是它们参与过滤的次序不同(只有在分组的情况下才使用HAVING),举个例子:
    列出税额大于3000姓李的用户
    select name,sum(tax) from taxdbt where name like '李%' group by name having sum(tax)>3000
    首先按姓名统计所有姓李的税额,再过滤出大于3000的记录。lfny你是不是做税务方面软件的