a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 130|回复: 1

[考试辅导] Oracle技术:oracle中使用SQL递归语句

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
 例子:   pid  id
+ f) d4 m2 g+ \6 k+ h& u6 A" k  a   b, j& L! [) t* g% L' f
  a   c# s0 V# t* G2 }7 @& N: x
  a   e% Z! E# V; E. r' R1 r' x
  b   b1& K1 n; t! \+ A
  b   b26 n2 L9 a9 K& `) b. A, @& `& M$ s
  c   c1
+ \7 y% j; Z  l2 x8 g# ~# q  e   e1+ }7 ~: A- e7 ]6 w1 v$ B! \, `* i
  e   e3" D3 h/ {6 _& g, O- e& {0 ~
  d   d1  P( m/ M0 g" T5 H
  指定pid=a,选出
& j! L8 Y: V- \% I! I  a   b
8 N6 e2 o" X4 @) b1 f7 ?8 K  a   c
! P$ g& M& o  q) h) ^  a   e
5 f5 m, ~+ E& }( x- ^, ^: a0 _  b   b15 G8 B+ U! A8 {4 N) d4 ?
  b   b2
; e5 V! }9 ^" z5 Q  z- J  c   c1
+ g, H' _4 _% |  e   e1
9 M% e- ?- G3 O2 a5 T/ X) ]  e   e3! c, e$ X, e  N+ ?) \& X
  SQL语句:select   parent,child   from   test   start   with   pid='a'9 v; X! |$ Y8 }9 n6 g- O
  connect   by   prior   id=pid
  r5 @* _* r) g+ f  Oracle  SQL的递归查询:
7 }6 b. @! s% `3 ]  1、表机构; B$ Q! A) C" b6 U& t
  SQL> desc comm_org_subjection6 H, }% G2 B! ?: w
  Name                                      Null?    Type
$ |. o" I; T! P7 R1 u3 T3 w* k
0 o* Q* M9 L& |( B0 z/ t  ----------------------------------------- -------- ----------------------------
回复

使用道具 举报

 楼主| 发表于 2012-8-4 14:06:20 | 显示全部楼层

Oracle技术:oracle中使用SQL递归语句

</p>  ORG_SUBJECTION_ID                         NOT NULL VARCHAR2(32)    子键- j  y5 L4 U$ u( c3 l8 k! N9 {
  ORG_ID                                    NOT NULL VARCHAR2(32)
3 q2 D8 X8 L. Y3 `0 b  FATHER_ORG_ID                             NOT NULL VARCHAR2(32)         父键
  {$ M2 j% Y# t  LOCKED_IF                                 NOT NULL VARCHAR2(1)
1 L" w9 L+ ~* v4 g$ _  START_DATE                                NOT NULL DATE- b' h) H  f! `" w/ E# D3 w: A
  END_DATE                                           DATE
: Z5 m; U% W; [, t" l$ r/ x8 h  EDITION_NAMEPLATE                                  NUMBER(8)" ?, J0 n+ F$ S9 ^
  CODE_AFFORD_IF                                     VARCHAR2(1)+ q9 d$ c/ H8 m$ y! ^0 V( s
  CODE_AFFORD_ORG_ID                        NOT NULL VARCHAR2(32)' D+ F! s* a/ e% r8 I
  CODING_SHOW_ID                                     NUMBER(8)1 v5 n: z7 N% W% @- [
  BSFLAG                                             VARCHAR2(1)- r# u4 ?) H- i" v
  MODIFI_DATE                                        DATE
! t7 i2 p- K2 [4 N) G7 `  CREATOR_ID                                         VARCHAR2(32)
) g3 b, w: |- W8 W: t( ?  J  CREATE_DATE                                        DATE- {5 D  i& X, P5 m$ l
  CREATOR                                            VARCHAR2(35)
. a8 M% x% z$ C  2、递归查找父结点 org_id为C6000000000001下的所有子结点:4 G. J: n' s. o  o  |
  select * from comm_org_subjection a
& L! f0 N' i0 R9 S: T9 H  start with a.org_id='C6000000000001'
% ~8 B& @/ b  [5 A$ Y5 [  connect by prior a.org_subjection_id=a.father_org_id
- C0 ^2 i+ Q/ L6 Y2 R  3、递归查找子结点 org_id为C6000000000001下的所有父结点:2 _6 `3 I+ m2 A9 c3 c) j6 G
  select org_id from comm_org_subjection a9 r9 G0 Y/ k9 C% O$ s
  start with a.org_id='C6000000000001'3 F( ?0 q0 Y* f: l, @4 e$ k1 d
  connect by prior a.father_org_id=a.org_subjection_id
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-4 13:47 , Processed in 0.228828 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表