易截截图软件、单文件、免安装、纯绿色、仅160KB

sql having 和where的区别

  最近在学习oracle的时候遇到一个问题,老是弄不清楚where 和having的区别,在网上查一查,感觉还可以,把以下我查的资料推荐给大家。
在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。
   在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚组函数
   select max(sal),job emp group by job; 
   (注意max(sal), job 的job并非一定要出现,但有意义 )
   查询语句的select 和group by ,having 子句是聚组函数唯一出现的地方,在where 子句中不能使用聚组函数。
  select deptno,sum(sal) from emp where sal>1200 group by deptno having sum(sal)>8500 order by deptno;
  当在gropu by 子句中使用having 子句时,查询结果中只返回满足having条件的组。在一个sql语句中可以有where子句和having子句。having 与where 子句类似,均用于设置限定条件 
我就以我做的t_student学生表为例 ,里面有字段:学号(sno),科目(subject),分数(score),
比如我要查询参加考试各科成绩都及格的学员“学号”,“平均成绩”
select sno,avg(score) from t_score group by sno having min(score)>=60;
也就是说,先按学号进行分组,分组好以后,然后在找出符合条件的一组,
结果如下:
SNO AVG(SCORE)
------ -----------------
y2010 76
 where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
  having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
大家可以建


相关文档:

sql 游标的使用

一个例子:从tszl表中查出数据,根据cs字段的值决定往BOOK_SERIAL表中插入几行数据。
declare @num int
declare @id varchar(60)
declare @classbm varchar(60)
set @classBm='101'
declare id cursor for select id,cs from  [tszl]
open id
fetch next from id into @id,@num
while @@fetch_status!=-1
&nb ......

How to use PL SQL Developer in Ubuntu

You can user PL SQL Developer in Ubuntu like in Windows:
1.download PL/SQL Developer for linux;
2.Install JDK berfore the next;
3.install the PL/SQL Developer;
4.goto the $PL/SQL Developer,run sh sqldeverloper.sh;
5.type the $JDK;
6.then the PL/SQL Developer will startup. ......

导出数据、生成SQL INSERT的方法。

在工作中常常碰到这种情况:我们需要将一个应用系统的基础数据导出来,以便基础数据下次导入到另外一个场景。
事实上,这种情况我们可以用pl/sql的功能Export Tables来实现。Export Table有三种导出方式:Oracle Export,SQL Insert,PL/SQL Developer。通常我们会使用Oracle Export,SQL Insert的功能。(第三种俺没用过, ......

特殊SQL语句

1.查询连接到某数据库的连接数
   select   count(*)   as   连接数   from   master..sysprocesses   where   db_name(dbid)='数据库名' ......

SQL数据库连接语句

一般的远程访问的写成这样:
Data Source=IP;Initial Catalog=数据库名;UserID=用户名;Password=密码
本地访问的写成这样:
Data Source=(local);Initial Catalog=数据库名;UserID=用户名;Password=密码
如果是本地的,通过windows组件验证的(也就是没有用户名,密码的)写成这样:
Data Source=(local);Initial Cata ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号