对了,少写一列 Salary   薪水
好在不重要!

解决方案 »

  1.   


         
    可以么?having是指定条件的,有的时候可与where 替换,但条件如果是包含聚众函数如:count等,就必须用having 
              
     在这里发贴,表示您接受了CSDN论坛的 用户行为准则。
     请您对您的言行负责,并遵守中华人民共和国有关法律、法规,尊重网上道德。  
      

  2.   

    可以么?having是指定条件的,有的时候可与where 替换,但条件如果是包含聚众函数如:count等,就必须用having 
              
      

  3.   

    我看的教科书是《数据库系统—设计、实现与管理》(第二版),在第96页上写着
    :HAVING子句并不是SQL的必要部分——任何使用HAVING子句的查询后可用不带HAVING子句的语句重写。书上写错了吗?等待高手回答或指正!
      

  4.   

    select name from sysobjects group by name having name<>''--等效于
    select name from sysobjects where name<>'' group by name-----------------------------------------------------------------
    --但:
    select name from sysobjects  group by name having count(*)>1--则不可以换成:
    select name from sysobjects  where count(*)>1 group by name
      

  5.   

    教科书上至少还有这样的话(否则你的教科书可以扔了):HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。
      

  6.   

    从上面这句你就可以看出,为什么我的示例1的两种写法都可以而第二种就不能.因为第一个的条件,无论在分组前,还是分组后,都是等效的.而第二个,条件是依赖分组后的结果,所以只能用having,而不能用where