oracle SQL递归的使用详解
更新时间:2013年05月30日 10:10:05 作者:
本篇文章是对oracle SQL递归的使用进行了详细的分析介绍,需要的朋友参考下
oracle数据库中如果需要使用SQL递归语句,应该怎么写呢?下面就为您介绍一个oracle中使用SQL递归语句的例子,供您参考。
例子:
pid id
a b
a c
a e
b b1
b b2
c c1
e e1
e e3
d d1
指定pid=a,选出
a b
a c
a e
b b1
b b2
c c1
e e1
e e3
SQL语句:select parent,child from test start with pid='a'
connect by prior id=pid
Oracle SQL递归查询语句:
1、表机构
SQL> desc comm_org_subjection
Name Null? Type
----------------------------------------- -------- ----------------------
ORG_SUBJECTION_ID NOT NULL VARCHAR2(32) 子键
ORG_ID NOT NULL VARCHAR2(32)
FATHER_ORG_ID NOT NULL VARCHAR2(32) 父键
LOCKED_IF NOT NULL VARCHAR2(1)
START_DATE NOT NULL DATE
END_DATE DATE
EDITION_NAMEPLATE NUMBER(8)
CODE_AFFORD_IF VARCHAR2(1)
CODE_AFFORD_ORG_ID NOT NULL VARCHAR2(32)
CODING_SHOW_ID NUMBER(8)
BSFLAG VARCHAR2(1)
MODIFI_DATE DATE
CREATOR_ID VARCHAR2(32)
CREATE_DATE DATE
CREATOR VARCHAR2(35)
2、递归查找父结点 org_id为C6000000000001下的所有子结点:
select * from comm_org_subjection a
start with a.org_id='C6000000000001'
connect by prior a.org_subjection_id=a.father_org_id
3、递归查找子结点 org_id为C6000000000001下的所有父结点:
select org_id from comm_org_subjection a
start with a.org_id='C6000000000001'
connect by prior a.father_org_id=a.org_subjection_id
例子:
复制代码 代码如下:
pid id
a b
a c
a e
b b1
b b2
c c1
e e1
e e3
d d1
指定pid=a,选出
a b
a c
a e
b b1
b b2
c c1
e e1
e e3
SQL语句:select parent,child from test start with pid='a'
connect by prior id=pid
Oracle SQL递归查询语句:
1、表机构
复制代码 代码如下:
SQL> desc comm_org_subjection
Name Null? Type
----------------------------------------- -------- ----------------------
ORG_SUBJECTION_ID NOT NULL VARCHAR2(32) 子键
ORG_ID NOT NULL VARCHAR2(32)
FATHER_ORG_ID NOT NULL VARCHAR2(32) 父键
LOCKED_IF NOT NULL VARCHAR2(1)
START_DATE NOT NULL DATE
END_DATE DATE
EDITION_NAMEPLATE NUMBER(8)
CODE_AFFORD_IF VARCHAR2(1)
CODE_AFFORD_ORG_ID NOT NULL VARCHAR2(32)
CODING_SHOW_ID NUMBER(8)
BSFLAG VARCHAR2(1)
MODIFI_DATE DATE
CREATOR_ID VARCHAR2(32)
CREATE_DATE DATE
CREATOR VARCHAR2(35)
2、递归查找父结点 org_id为C6000000000001下的所有子结点:
复制代码 代码如下:
select * from comm_org_subjection a
start with a.org_id='C6000000000001'
connect by prior a.org_subjection_id=a.father_org_id
3、递归查找子结点 org_id为C6000000000001下的所有父结点:
复制代码 代码如下:
select org_id from comm_org_subjection a
start with a.org_id='C6000000000001'
connect by prior a.father_org_id=a.org_subjection_id
相关文章
oracle不能使用EM怎么办 oracle11g如何正确安装配置EM
这篇文章主要为大家详细介绍了oracle不能使用EM的解决方法,oracle11g如何正确安装配置EM,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-05-05
Oracle SQL Developer脚本输出中文显示乱码的解决方法
我们在测试Oracle Select AI(自然语言查询数据库)时,发现Run Statement中文显示正常,而Run Script中文显示乱码,所以本文给大家介绍了Oracle SQL Developer脚本输出中文显示乱码的解决方法,需要的朋友可以参考下2024-05-05
浅谈Oracle 11g 发行版2 新安装后关于登录的一些基本操作
oracle 11g的两个不同版本。11g刚发行时,是11g第一版,简称11.1,现在有个11g第二版,在功能上有了更多的改进,简称11.2。本文给大家介绍Oracle 11g 发行版2 新安装后关于登录的一些基本操作,需要的朋友可以参考下2015-10-10


最新评论