表: table1  field:  id     property1    property2    parent_id
  value   A        p_a         p_a_2         B
          B        p_b         p_b_2         C
          C        p_c         p_c_2         D
          D        p_d         p_d_2         
          E        p_e         p_e_2         F
          F        p_f         p_f_2       对于id 为E  
         我要求查出:   select p_e    e1,
                              p_e_2  e2,
                              p_f    e3,
                              p_f_2, e4
                       from table1
对于id 为B:要求查出: 
                       select p_b     b1,
                              p_b_2   b2,
                              p_c     b3,
                              p_c_2   b4,
                              p_d     b5,
                              p_d_2   b6
                       from table1即通过不同的ID,要查出自身和父ID的property1 和 property2,并且根据层数的不同,取出不同的字段数.

解决方案 »

  1.   

    SELECT ID, PARENT_ID, property1,property2
                    FROM table1
                    START WITH ID = E 
                    CONNECT BY PRIOR ID = PARENT_ID
      

  2.   

    SELECT ID, PARENT_ID, LEVEL,property1,property2
    FROM table1
    START WITH ID = E
    CONNECT BY PRIOR ID = PARENT_ID
      

  3.   

    谢谢,但你这样查找的字段数是固定的啊.对于E,有一个父ID,要查找四个字段.对于B,有两个父ID,要查找六个字段.