Oracle高级查询实例,提升效率
来源:互联网 发布:济宁市高新区网络问政 编辑:程序博客网 时间:2024/05/29 13:57
使用Oracle特有的查询语法,可以达到事半功倍的效果。
如下:
1. 树查询
create table tree (
id number(10) not null primary key,
name varchar2(100) not null,
super number(10) notnull // 0 is root
);
-- 从子到父
select * from tree start with id = ? connect by id = prior super
-- 从父到子
select * from tree start with id = ? connect by prior id = suepr
-- 整棵树
select * from tree start with super = 0 connect by prior id = suepr
2. 分页查询
select * from (
select my_table.*, rownum my_rownum from (
select name, birthday from employeeorder by birthday
) my_table where rownum < 120
) where my_rownum >= 100;
3. 累加查询, 以scott.emp为例
select empno, ename, sal, sum(sal) over(order by empno) resultfrom emp;
EMPNOENAME SAL RESULT
---------- ---------- ---------- ----------
7369SMITH 800 800
7499ALLEN 1600 2400
7521WARD 1250 3650
7566JONES 2975 6625
7654MARTIN 1250 7875
7698BLAKE 2850 10725
7782CLARK 2450 13175
7788SCOTT 3000 16175
7839KING 5000 21175
7844 TURNER 1500 22675
7876ADAMS 1100 23775
7900JAMES 950 24725
7902FORD 3000 27725
7934MILLER 1300 29025
4. 高级group by
select decode(grouping(deptno),1,'all deptno',deptno) deptno,
decode(grouping(job),1,'alljob',job) job,
sum(sal) sal
from emp
group by ROLLUP(deptno,job);
DEPTNO JOB SAL
---------------------------------------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 all job 8750
20 CLERK 1900
20 ANALYST 6000
20 MANAGER 2975
20 all job 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 all job 9400
all deptno all job 29025
5. use hint
当多表连接很慢时,用ORDERED提示试试,也许会快很多
SELECT /**//*+ ORDERED */*
FROM a, b, c, d
WHERE
- Oracle高级查询实例,提升效率
- 提升数据库查询效率小结
- 提升数据库数据查询效率
- 效率提升工具--高级剪贴板Ditto
- oracle查询效率积累
- oracle查询效率(一)
- oracle查询效率积累
- Oracle 查询效率详解
- 提高Oracle查询效率
- oracle提高查询效率
- Oracle 查询效率详解
- oracle 查询效率
- Oracle提高查询效率
- oracle提高查询效率
- oracle查询效率积累
- oracle 查询效率问题
- oracle查询效率
- oracle提高查询效率
- JAVA基础回顾之构造方法
- Hololens开发手记——Unity之Spatial Sounds空间声音
- Asp.net项目常用的控件
- JpGraph使用详解
- react native SegmentedControlIOS 使用详解
- Oracle高级查询实例,提升效率
- 2017GMTC全球移动技术大会专题介绍
- Java利用captcha实验图片验证码
- Linux shell编程
- Python中使用libsvm
- ios weak
- 重新排序一个序列
- ViewPager详解(二)广告轮播图
- MyEclipse常用快捷键