当前位置:Gxlcms > 数据库问题 > oracle 递归查询

oracle 递归查询

时间:2021-07-01 10:21:17 帮助过:2人阅读

with view_test as ( 2 3 select A AS ID,X AS P_ID,C AS C_ID,1 AS IND_EX FROM DUAL 4 5 UNION 6 select C AS ID,A AS P_ID,B AS C_ID,1_1 AS IND_EX FROM DUAL 7 UNION 8 select B AS ID,C AS P_ID,A AS C_ID,1_2 AS IND_EX FROM DUAL 9 /*UNION 10 select ‘A‘ AS ID,‘B‘ AS P_ID,‘C‘ AS C_ID FROM DUAL*/ 11 UNION 12 select A AS ID,B AS P_ID,X AS C_ID,1_3 AS IND_EX FROM DUAL 13 14 UNION 15 select C AS ID,A AS P_ID,D AS C_ID, 2_1 AS IND_EX FROM DUAL 16 UNION 17 select D AS ID,C AS P_ID,A AS C_ID, 2_2 AS IND_EX FROM DUAL 18 UNION 19 select A AS ID,D AS P_ID,X AS C_ID, 2_3 AS IND_EX FROM DUAL 20 35 ) 36 37 select 38 sys_connect_by_path(ID,>) AS ID 39 ,sys_connect_by_path(IND_EX,>) as ind_ex 40 from 41 view_test 42 start 43 with P_ID = X 44 connect by 45 P_ID = prior ID AND ID = prior C_ID 46 /*AND ID != prior P_ID */ AND prior C_ID != X

试验结果:

1    >A    >1
2    >A>C    >1>1_1
3    >A>C>B    >1>1_1>1_2
4    >A>C>B>A    >1>1_1>1_2>1_3
5    >A>C    >1>2_1
6    >A>C>D    >1>2_1>2_2
7    >A>C>D>A    >1>2_1>2_2>2_3

 

oracle 递归查询

标签:

人气教程排行