在ORACLE数据库查询中,我们经常会遇到对树型结构表的查询,这是个麻烦的问题。下面给大家介绍一种SQL语句,实现递归查询。语法如下:
SELECT 字段1,字段2,字段3,。。。
FROM 表名
START WITH 条件1
CONNECT BY PRIOR 条件2
WHERE 条件3;
下面举一个例子,有这样一张表:
表dg_test
—————————————————————————————————————
parent_id child_id id_desc
—————————————————————————————————————
0000 1001 rows0
0000 1002 rows1
0000 1003 rows2
0000 1004 rows3
1001 2001 rows4
1001 2002 rows5
1002 2003 rows6
1003 2004 rows7
2001 3001 rows8
3001 4001 rows9
——————————————————————————————————————
使用如下SQL 语句:
SELECT * FROM dg_test START WITH parent_id = '1001' CONNECT BY PRIOR child_id = parent_id;
查询结果如下:
—————————————————————————————————————
parent_id child_id id_desc
—————————————————————————————————————
1001 2001 rows4
1001 2002 rows5
2001 3001 rows8
3001 4001 rows9
——————————————————————————————————————