oracle with 使用
2016-03-12 16:51
627 查看
oracle查询过程中,取查询结果中某些特别的数据,可以使用with语句,避免很多嵌套的复杂查询
下面是例子:
1.取结果中第一条数据、最后一条数据、非第一条最后一条数据中状态为‘Y’的数据
with tmp as
(select rownum rn, t.*
from (select ad.*
from t_srv_addresscollection ad
where ad.collection_time >= trunc(sysdate-1 )
and ad.collection_time < trunc(sysdate)
and ad.driver_code = '240209'
order by ad.collection_time) t)
select *
from tmp
where (tmp.rn = 1)
or (tmp.rn <> 1 and tmp.rn <> (select max(rn) from tmp) and
tmp.is_stop = 'Y')
or (tmp.rn = (select max(rn) from tmp))
2.with insert 插入语句
下面是例子:
1.取结果中第一条数据、最后一条数据、非第一条最后一条数据中状态为‘Y’的数据
with tmp as
(select rownum rn, t.*
from (select ad.*
from t_srv_addresscollection ad
where ad.collection_time >= trunc(sysdate-1 )
and ad.collection_time < trunc(sysdate)
and ad.driver_code = '240209'
order by ad.collection_time) t)
select *
from tmp
where (tmp.rn = 1)
or (tmp.rn <> 1 and tmp.rn <> (select max(rn) from tmp) and
tmp.is_stop = 'Y')
or (tmp.rn = (select max(rn) from tmp))
2.with insert 插入语句
/** 统计快递员 所属 经营本部,事业部,大区,小区,营业部(或者 点部) */ for c in (select v.empcode, v.deptcode from v_emp_courier v) loop insert into t_evs_courier_info with t as (select d.deptcode, d.deptname, d.deptlevel from t_org_department d where d.active = 'Y' start with d.deptcode = c.deptcode connect by nocycle prior d.parent_org_code = d.deptcode) select sys_guid(), sysdate, c.empcode, v_product_date, t3.deptcode, t3.deptname, t4.deptcode, t4.deptname, t5.deptcode, t5.deptname, t6.deptcode, t6.deptname, t7.deptcode, t7.deptname from (select t.deptcode, t.deptname from t where t.deptlevel = 3) t3, (select t.deptcode, t.deptname from t where t.deptlevel = 4) t4, (select t.deptcode, t.deptname from t where t.deptlevel = 5) t5, (select t.deptcode, t.deptname from t where t.deptlevel = 6) t6, (select t.deptcode, t.deptname from t where t.deptlevel = 7) t7; end loop;
相关文章推荐
- oracle 读取blob大文本字段
- Windows下编写批处理脚本来启动和重置Oracle数据库
- oracle物化视图详解
- Oracle基本概念
- ORACLE--数据库基础
- Oracle数据库中对null值的排序及mull与空字符串的区别
- oracle vm virtualbox & ubuntu-14.04 共享文件夹设置方法总结
- Oracle用SQL语句解析XML
- 对ORACLE数据库进行操作
- 通过JDBC连接ORACLE数据库(通用类)
- ORACLE(SEQUENCE)序列总结
- 【翻译自mos文章】设置了RemoveIPC=yes 的RHEL7.2 会crash掉Oracle asm 实例和Oracle database实例
- Oracle回收站操作
- Oracle GoldenGate 支持 从SAP HANA database抽取或者复制数据到SAP HANA database 吗?
- Oracle数据库中对null值的排序及mull与空字符串的区别
- Windows下编写批处理脚本来启动和重置Oracle数据库
- Oracle之RMAN数据库在非归档模式下的备份和恢复
- 36.Oracle深度学习笔记——SLOB 工具使用
- 35.Oracle深度学习笔记——关于dbms_shared_pool. MARKHOT
- oracle完整卸载