ORACLE 学习

 

in和exists 对比:若子查询结果集比较小,优先使用in,若外层查询比子查询小,优先使用exists.
not ni 和not exists与exists 含义相反,也在子查询中使用,取出不满足条件的,与not in有一定的区别,注意有时候not

exists不能完全替代not in.
树形查询:connect by
一维多层统计:rollup

select e.deptno,e.job,sum(e.sal) from emp e,dept d where e.deptno=d.deptno group by e.deptno,rollup(e.job)
关联:union 和 union all 前者是获取每个查询的所有不重复的行,后者是所有行,包括重复的

分析函数:row_number() over(order by ..)
  rank() 跳跃排
  dense_rank() 连续排(并列名次)

select * from (select deptno,sal,dense_rank() over(partition by deptno order by sal desc) r from emp) t where t.r<=3;

你可能感兴趣的:(数据库,oracle)