-
存疑,后续继续看下
查看全部 -
提示一下吧!查看全部
-
explain plan for
select 。。。
select * from table (dbms_xplan.display);
相关子查询,需要先从主查询查询出一个值后,子查询才能执行查询
查看全部 -
也可以写成
select r,empno.ename,sal
from (select rownum r,empno,ename,sal
from (select empno,ename,sal from emp order by sal desc ) e1
where rownum<=8)e2
where r>=5;
查看全部 -
where ** not in (子查询)
子查询结果集中不能有null,子查询有空值,则主查询返回无结果
使用not in 时,子查询的where条件要加上查询结果列 is not null 才行
查看全部 -
any.all
查看全部 -
rownum 只能用< 或<=
查看全部 -
group by 子句不能使用子查询
where 里不能使用分组函数(AVG,SUM)
查看全部 -
左外链接: e.eno = b.bno(+)
右外链接: e.eno(+) = b.bno
查看全部 -
break on deptno skip 2
相同的部门号只显示一次,不同的部门号跳过两行
查看全部 -
rollup()
查看全部 -
相关子查询
找到员工表中薪水大于本部门平均薪水的员工
select empno,ename,sal,(select avg(sal) from emp where deptno=e.deptno) avgsal
from emp e
where sal> (select avg(sal) from emp where deptno=e.deptno);
查看全部 -
行号排序:
rownum 行号 伪劣
行号永远按照默认的顺序生成
行号只能使用<, <=;不能使用>,>=
select rownum,empno,ename,sal
from (select * from emp order by sal desc)
where rownum<=3;
查看全部 -
sun(comm)/count(*)=>count(*)包含没奖金的,表示加上空值的奖金字段
sun(comm)/count(comm)=>count(comm)不包含没奖金的,表示不加上空值的奖金字段,如果要加上空字段,count(nvl(comm,0),nvl表示空则把奖金的字段的值设置为0
avg(comm) =>不包含没奖金的,表示不加上空值的奖金字段,
查看全部 -
select deptno,avg(sal) 平均工资 from emp group by deptno order by 平均工资 = select deptno,avg(sal) 平均工资 from emp group by deptno order by 2
查看全部
举报