• 售前

  • 售后

热门帖子
入门百科

oracle SQL递归的使用详解

[复制链接]
程狄矢 显示全部楼层 发表于 2021-10-26 13:06:19 |阅读模式 打印 上一主题 下一主题
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

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作