你所在的位置: 首页 > Oracle > OCA >
最新开班 班级 报名状态
9月25日 HCNA-Cloud Service 热招中
9月25日 HCNA-Cloud Service 热招中
9月30日 HCNA-R&S周末班 热招中
10月31日 HCNP-storage脱产班 热招中
10月23日 HCNA-storage脱产班 热招中
10月20日 HCNP-R&S脱产班 热招中
10月10日 HCIE-R&S脱产班 热招中
10月9日 HCNA-R&S脱产班 热招中
9月25日 HCNP-Cloud脱产班 热招中
9月18日 HCNA-Cloud脱产班 热招中
  • 博赛网络ICT就业班热招中
  • 博赛推出Oracle OCM实战课程

Oracle单表的复杂查询

时间:2013-10-31 16:13 作者:Superthink 点击:

Oracle单表的复杂查询

  select avg(sal),max(sal),deptnofrom empgroupby deptno;

  select avg(sal),max(sal),deptnofrom empgroupby deptnohavingavg(sal)>2000orderby deptno;

  查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J?

  select *from empwhere (sal>500or job='manager')and enamelike'J%';

  按照部门号升序而雇员的工资降序排列

  select *from emporderby deptnoasc , saldesc ;

  select (sal+nvl(comm,0))*12assum,enamefrom emporderbysum;

  求最高工资和最低工资

  selectmax(sal),min(sal)from emp ;

  查询最高工资员工的名字,工作岗位

  select ename,salfrom empwhere (selectmax(sal)from emp )=sal;

  显示工资高于平均工资的员工信息

  select *from empwhere sal>(selectavg(sal)from emp);

  group by 和 having子句

  group by用于对查询的结果分组统计,

  having子句用于限制分组显示结果。

  如何显示每个部门的平均工资和最高工资

  selectavg(sal),max(sal),deptnofrom empgroupby deptno;

  显示每个部门的每种岗位的平均工资和最低工资?

  selectavg(sal),max(sal),min(sal),deptno,jobfrom empgroupby deptno,job;

  显示平均工资低于2000的部门号和它的平均工资?

  selectavg(sal),max(sal),deptnofrom empgroupby deptnohavingavg(sal)>2000orderby deptno;

  对数据分组的总结:

  1 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中)

  2 如果在select语句中同时包含有group by, having, order by那么它们的顺序是group by, having, order by

  3 在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须有一个出现在group by子句中,否则就会出错。

  如

  SELECT deptno, AVG(sal), MAX(sal) FROM emp GROUP by deptno HAVING AVG(sal) < 2000;

(责任编辑:Superthink)

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)