- 浏览: 54565 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
最新评论
-
yvonxiao:
这个的确好用,我记得我以前是自己写了个存储过程来解决这种递归问 ...
Oracle Start With Connect By
Start With Connect By 是用来实现在一个表中存在父子关系的两个字段的树形结构,通过一个从一个字段开始,以树形结构去查找其子记录。
1、建表
create table TEST_STRAT_WTH111
(
OID VARCHAR2(20),
PARENT_ID VARCHAR2(20)
)
2、插入数据
insert into test_strat_wth (OID, PARENT_ID)
values ('0000005', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000003', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000004', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000500001', '0000005');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000006', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000600001', '0000006');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000600002', '0000006');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000007', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000008', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000009', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000900001', '0000009');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000900002', '0000009');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000900003', '0000009');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000900004', '0000009');
insert into test_strat_wth (OID, PARENT_ID)
values ('00', '');
insert into test_strat_wth (OID, PARENT_ID)
values ('01', '');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000500002', '0000005');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000500003', '0000005');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000500004', '0000005');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000011', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100004', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100005', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('010000500001', '0100005');
insert into test_strat_wth (OID, PARENT_ID)
values ('010000500002', '0100005');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100006', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('010000600001', '0100006');
insert into test_strat_wth (OID, PARENT_ID)
values ('010000600002', '0100006');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000010', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('000001000001', '0000010');
insert into test_strat_wth (OID, PARENT_ID)
values ('000001000005', '0000010');
insert into test_strat_wth (OID, PARENT_ID)
values ('000001000003', '0000010');
insert into test_strat_wth (OID, PARENT_ID)
values ('000001000004', '0000010');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100007', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100008', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100010', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100009', '01');
COMMIT;
3、查询数据
SELECT *
FROM TEST_STRAT_WTH T
START WITH T.PARENT_ID IS NULL
CONNECT BY PRIOR T.OID = T.PARENT_ID
4、数据结果:
00
0000005 00
000000500001 0000005
000000500002 0000005
000000500003 0000005
000000500004 0000005
0000003 00
0000004 00
0000006 00
000000600001 0000006
000000600002 0000006
0000007 00
0000008 00
0000009 00
000000900001 0000009
000000900002 0000009
000000900003 0000009
000000900004 0000009
0000011 00
0000010 00
000001000001 0000010
000001000005 0000010
000001000003 0000010
000001000004 0000010
01
0100004 01
0100005 01
010000500001 0100005
010000500002 0100005
0100006 01
010000600001 0100006
010000600002 0100006
0100007 01
0100008 01
0100010 01
1、建表
create table TEST_STRAT_WTH111
(
OID VARCHAR2(20),
PARENT_ID VARCHAR2(20)
)
2、插入数据
insert into test_strat_wth (OID, PARENT_ID)
values ('0000005', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000003', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000004', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000500001', '0000005');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000006', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000600001', '0000006');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000600002', '0000006');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000007', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000008', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000009', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000900001', '0000009');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000900002', '0000009');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000900003', '0000009');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000900004', '0000009');
insert into test_strat_wth (OID, PARENT_ID)
values ('00', '');
insert into test_strat_wth (OID, PARENT_ID)
values ('01', '');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000500002', '0000005');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000500003', '0000005');
insert into test_strat_wth (OID, PARENT_ID)
values ('000000500004', '0000005');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000011', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100004', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100005', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('010000500001', '0100005');
insert into test_strat_wth (OID, PARENT_ID)
values ('010000500002', '0100005');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100006', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('010000600001', '0100006');
insert into test_strat_wth (OID, PARENT_ID)
values ('010000600002', '0100006');
insert into test_strat_wth (OID, PARENT_ID)
values ('0000010', '00');
insert into test_strat_wth (OID, PARENT_ID)
values ('000001000001', '0000010');
insert into test_strat_wth (OID, PARENT_ID)
values ('000001000005', '0000010');
insert into test_strat_wth (OID, PARENT_ID)
values ('000001000003', '0000010');
insert into test_strat_wth (OID, PARENT_ID)
values ('000001000004', '0000010');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100007', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100008', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100010', '01');
insert into test_strat_wth (OID, PARENT_ID)
values ('0100009', '01');
COMMIT;
3、查询数据
SELECT *
FROM TEST_STRAT_WTH T
START WITH T.PARENT_ID IS NULL
CONNECT BY PRIOR T.OID = T.PARENT_ID
4、数据结果:
00
0000005 00
000000500001 0000005
000000500002 0000005
000000500003 0000005
000000500004 0000005
0000003 00
0000004 00
0000006 00
000000600001 0000006
000000600002 0000006
0000007 00
0000008 00
0000009 00
000000900001 0000009
000000900002 0000009
000000900003 0000009
000000900004 0000009
0000011 00
0000010 00
000001000001 0000010
000001000005 0000010
000001000003 0000010
000001000004 0000010
01
0100004 01
0100005 01
010000500001 0100005
010000500002 0100005
0100006 01
010000600001 0100006
010000600002 0100006
0100007 01
0100008 01
0100010 01
发表评论
-
oracle 命令
2009-02-05 20:30 933一、ORACLE的启动和关闭 ... -
通过dbms_flashback找回误删除的数据收藏
2009-01-21 11:35 1316在使用DBMS_FLASHBACK时要首先注意以下几个事项: ... -
优化Oracle数据库性能收藏
2009-01-21 11:35 826优化策略 为了保 ... -
Oracle 表空间操作收藏
2009-01-21 11:32 968创建表空间: 1、递增 ... -
移动数据文件收藏
2009-01-21 11:32 689移动数据文件: 1、首先使要移动数据文件的表空间离线. ... -
Oracle 死锁会话处理收藏
2009-01-21 11:31 1089--查询所有的死锁: SELECT * FROM V$LOCK ... -
Oracle 9i 打开autotrace on 查看执行计划收藏
2009-01-21 11:31 12871.创建表,通过utlxplan脚本 SQL> @? ... -
如何启用sqlplus的AutoTrace功能收藏
2009-01-21 11:31 806通过以下方法可以把Autotrace的权限授予Everyone ... -
user和schema的区别:
2009-01-21 11:30 967说穿了其实user是控制权限的,而schema是个容器,非所有 ... -
解决Oracle数据文件和日志文件丢失的问题收藏
2009-01-21 11:29 2029今天不小心误删除了数据库的数据文件和日志文件,在启动数据库时报 ... -
Oracle表段中的高水位线HWM收藏
2009-01-21 11:28 2552在Oracle数据的存储中, ... -
深入了解oracle的高水位(HWM)收藏
2009-01-21 11:26 2234说到HWM,我们首先要简要的谈谈ORACLE的逻辑存储管理.我 ... -
ORACLE 日志文件相关查询收藏
2009-01-21 11:25 11521.查询系统使用的是哪一组日志文件: select * fro ... -
ORACLE热备份恢复手册收藏
2009-01-21 11:22 2270概要 1.1. 本文的目的 为了模拟测试oracle热备份的 ... -
(转)windows命令行下启动oracle
2009-01-21 09:56 1463--总结启动命令如下: lsnrctl [start|stop ... -
小议分析函数中排序对结果的影响(一)
2009-01-12 13:24 830分析函数中经常会包括O ... -
ORACLE10g新特性——全局HASH分区索引
2009-01-12 13:23 1701在10g以前,Oracle的全局索引分区方法只有一种,即范围分 ... -
深入认识Oracle Supplemental logging
2008-12-22 18:35 3105对于有过逻辑standby,streams搭建体验的朋友,肯定 ... -
深入分析Oracle数据库日志文件
2008-12-22 15:19 951深入分析Oracle数据库日志文件 作者:程永新 发文时间: ... -
oracle 介绍
2008-09-20 21:04 1093第二章 架构 ORACLE架构由3部分组成: 文件, 内存结 ...
相关推荐
Oracle start with.connect by prior子句实现递归查询
oracle中的数查询,介绍的详细,有例子。
主要给大家介绍了关于Oracle递归查询start with connect by prior、的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
本文章详细介绍了Oracle中connect by...start with...的用法。
NULL 博文链接:https://yunqiang-zhang-hotmail-com.iteye.com/blog/1312354
在Oracle中用Start with...Connect By子句递归查询
Oracle 递归查询, start with connect by prior 用法 find_in_set 函数 concat,concat_ws,group_concat 函数 MySQL 自定义函数 手动实现 MySQL 递归查询 Oracle 递归查询 在 Oracle 中是通过 start ...
Oracle_start_with_connect_by_prior_用法[文].pdf
ORACLE查询树型关系(connect_by_prior_start_with)
oracle中 connect by prior 递归算法 Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的
oracle菜单树查询 使用实例 使用START WITH CONNECT BY PRIOR子句实现递归查询
Oracle row_number()over start with...connect by prior start with...connect by prior
Oracle使用递归查询。查询树结构的sql。在Oracle中,递归查询要用到start with ……connect by prior……
Oracle 数据库树形结构用法总结,例如SYS_CONNECT_BY_PATH 、START WITH . . . CONNECT BY . . .等具体语法介绍
详细介绍了,oracle的树状结构查询的语法start with… CONNECT BY…
Oracle SELECT语句中的START WITH和CONNECT BY子句自动阻断一个层次。缺少这项特性,就需要一个复杂的自联接来确定行之间的逻辑联系。START WITH子句指定被认为是层次起点,或“根”的一行或几行,然后CONNECT BY ...
介绍了将多行转为字符串的三种方案,并比较了三种方案的执行效率. 1.sys_connect_by_path + start with ... connect by ... prior + 分析函数 2.自定义Function/SP 3.使用 Oracle 10g 内置函数 wmsys.wm_concat
SQL>START test SQL>@test 常用SQL*Plus语句 a、表的创建、修改、删除 创建表的命令格式如下: create table 表名 (列说明列表); 为基表增加新列命令如下: ALTER TABLE 表名 ADD (列说明列表) 例:为test表...
export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export ORACLE_SID=cams export ORACLE_TERM=vt100 export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data...