有如下表和记录
fun_id   fun_fatherid  fun_name
1        0             A
2        1             B
3        2             C
4        3             D
5        4             E
6        5             F
7        6             G请问当知道fun_id=3时,如何写sql语句查出属于fun_id=3的儿子、孙子、曾孙子......
如:当fun_id=3,查询结果应该是:
4        3             D
5        4             E
6        5             F
7        6             G注:不要求用存储过程

解决方案 »

  1.   

    SELECT fun_id   fun_fatherid  fun_name
       FROM t1
       START WITH fun_id = '3'
       CONNECT BY PRIOR fun_id =  fun_fatherid  ;
      

  2.   

    select * from table_name connect by prior  fun_id  =  fun_fatherid  start with fun_fatherid  = 3(或者其他条件)
      

  3.   

    你这样是返回一个结果集,在ORACLE中返回结果集一般都用存储过程。
      

  4.   

    select * from TABLE start with fun_id=3 connect by prior fun_id =  fun_fatherid
    看一看START WITH CONNECT BY 的用法,用这个肯定能解决的