参考connect by,可以解决你的问题
http://expert.csdn.net/Expert/topic/1162/1162555.xml?temp=.1453974

解决方案 »

  1.   

    select  lpad(BANKNAME,level*2+length(BANKNAME),'  ')  BANKNAME
    from  table x  
    connect  by  prior  id  =  BANKID
    start  with  BANKID=  1;  --此处定义起点的BANKID为1
      

  2.   

    上面的BANKID应当是PARENTBANKID
    看你的意思,开始也该是0,不是1
    你自己修改一下,然后参考一下connect by 资料
      

  3.   

    select BANKID,BANKNAME,PARENTBANKID from 表 connect by prior BANKID=PARENTBANKID start with BANKID in(
    select BANKID from 表 where PARENTBANKID=0);
      

  4.   

    select BANKID,BANKNAME,PARENTBANKID 
    from 表 
    connect by prior BANKID=PARENTBANKID 
    start with PARENTBANKID=0;