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
教科书上至少还有这样的话(否则你的教科书可以扔了):HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。
可以么?having是指定条件的,有的时候可与where 替换,但条件如果是包含聚众函数如:count等,就必须用having
在这里发贴,表示您接受了CSDN论坛的 用户行为准则。
请您对您的言行负责,并遵守中华人民共和国有关法律、法规,尊重网上道德。
:HAVING子句并不是SQL的必要部分——任何使用HAVING子句的查询后可用不带HAVING子句的语句重写。书上写错了吗?等待高手回答或指正!
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