现有一张表如下:
    SJDWID       DWID DWMC                 CPBH
---------- ---------- -------------------- ----
                  107 总公司                0
       107       1101 分公司1                1
       107       1102 分公司2                2
       107       1103 分公司3                3
      1101       1111 HY1                  11
      1101       1112 HY2                  12
      1101       1113 HY3                  13
      1101       1114 HY4                  14
      1101       1115 HY5                  15
      1102       2111 KT1                  21
      1102       2112 KT2                  22
      1102       2113 KT3                  23
      1102       2114 KT4                  24
      1102       2115 KT5                  25
      1103       3111 TX1                  31
      1103       3112 TX2                  32
      1103       3113 TX3                  33
      1103       3114 TX4                  34
      1103       3115 TX5                  35
其中SJDWID 为dwid的上级单位,总公司有分公司1、2、3,分公司又有子公司对应如上表。现在,想要查询的结果是:     SJDWID       DWID DWMC                 CPBH
---------- ---------- -------------------- ----
                  107 总公司                 0
     107       1101 分公司1                1
      1101       1111 HY1                  11
      1101       1112 HY2                  12
      1101       1113 HY3                  13
      1101       1114 HY4                  14
      1101       1115 HY5                  15
      107        1102 分公司2                2
      1102       2111 KT1                  21
      1102       2112 KT2                  22
      1102       2113 KT3                  23
      1102       2114 KT4                  24
      1102       2115 KT5                  25
      107       1103 分公司3                3
      1103       3111 TX1                  31
      1103       3112 TX2                  32
      1103       3113 TX3                  33
      1103       3114 TX4                  34
      1103       3115 TX5                  35   
SQL语句该怎么写呢,做了好半天了,不出来,求高手帮帮忙 ~~~不胜感激~~~ 

解决方案 »

  1.   

    SELECT SJDWID, DWID ,DWMC, CPBH
    FROM TAB
    START WITH SJDWID='107'
    CONNECT BY PRIOR DWID = SJDWID
      

  2.   

    O(∩_∩)O谢谢gelyon了~,START WITH SJDWID='107'
    CONNECT BY PRIOR DWID = SJDWID?学习了~这个函数得下去看看~还有,能不能把总公司也显示出来呢?因为有好几个公司呢~~~~
      

  3.   


    可以啊 你总公司的对应的SJDWID是不是空?
    如果是,那么你把开始条件换成:start with DWID='107' 或者start with  SJDWID is null
      

  4.   


    可以参考学习:
    http://maruibenze.javaeye.com/blog/208541
    http://oracle.chinaitlab.com/optimize/756664.html