写出sql语句,又表A存储二叉树的节点,要用一条sql语句查出所有节点级节点所在的层
表A
C1   C2
A    B
A    C
B    D
C    E
D    F
E    I
D    K
C    N查询结果
A    1
B    2
C    2
D    3
N    3
E    3
F    4
K    4
I    4
                  A
             B       C
            D      N   E
          F    K      I
这是结构 

解决方案 »

  1.   

    select distinct c2,level+1 l from a
    connect by prior c2=c1
    start with c1='A'
    union all select 'A',1 from dual
      

  2.   

    谢谢楼上的,不过其中有些语法我还有点不大明白。
    请问 connect by prior 是内连接吗?
    union all是全连接是吧。
      

  3.   

    connect by是层次化查询,遍历一个树形结构中的子节点
    union all也不是全连接,它将前后两个结果集进行拼接
    由于在你的源数据中'A'不存在于c2中,所以使用union all来得到你想要的结果
      

  4.   

    请问 connect by prior 是内连接吗?是的,可以这样理解,不过这里还有递归,你可以了解一下connect by的用法
      

  5.   

    还不知道oracle可以是实现这样的功能?谢谢wildwave,学习啦!