dotnet come on
前途是光明的

用户在使用SQL语言的过程中可能希望解决的一个问题就是对由sum或其它集合函数运算结果的输出进行限制。例如,我们可能只希望看到Store_Information数据表中销售总额超过1500美圆的商店的信息,这时我们就需要使用HAVING从句。语法格式为:

SELECT "column_name1", SUM("column_name2")

FROM "table_name"

GROUP BY "column_name1"

HAVING (arithematic function condition)

(GROUP BY从句可选)

由此,我们可以使用如下命令实现上述查询目的:

SELECT store_name, SUM(sales)

FROM Store_Information

GROUP BY store_name

HAVING SUM(sales) > 1500

和where的区别是有的如下面的例子:

select 系号, count(*);
from 表1 ;
   group by 系号;
   where 性别="女"

select 系号, count(*);
from 表1 ;
   group by 系号;
    having 性别="女"
这两个sql运行的结果不一样的.
第一个是正确的.
第二个是错误的.
因为一个系有男有女的,你这个分组条件是永远不起作用.
只要一个系中有一个女的,就会满足条件统计整个系的人数.
同时统计人数时候,也包括男在内.
having只不过是排除不满足having后的条件的某个分组.
假如一个系中无女,那么这个系不统计人数.
而where是把男生记录先排除了.在统计.
不用where统计人数也包括在内,达不到你的目的.
where是对整个表的数据进行筛选,
haing是对分组筛选,只要满组条件该组会出现在结果的.

网上搜的小总结,恩!!可以看一点!!!! 嘿嘿

posted on 2008-04-01 18:54  lixiaoer  阅读(412)  评论(0)    收藏  举报