oracle实现递归的基本语句是 start with column = ? connect by prior [递归条件]
有一个树形结构的数据
表明 test
id pid name
1 0 zhang
2 1 li
3 1 wang
4 2 liu
5 0 zhao
[b]如果从id=1开始遍历出所有的子节点的语句是[/b]
select * from test t start with t.id=1 connect by prior t.id = t.pid
遍历出的结果是
1 0 zhang
2 1 li
3 1 wang
4 2 liu
[b]如果从id=4开始遍历出所有的父节点,则语句应该是[/b]
select * from test start with t.id = 4 connect by prior t.pid = t.id
[b]如果想添加其他的条件,应该在嵌套一层 ,如下[/b]
select * from test t where t.id in
(select * from test start with t.id = 4 connect by prior t.pid = t.id
) and t.name like '%zhang%'
有一个树形结构的数据
表明 test
id pid name
1 0 zhang
2 1 li
3 1 wang
4 2 liu
5 0 zhao
[b]如果从id=1开始遍历出所有的子节点的语句是[/b]
select * from test t start with t.id=1 connect by prior t.id = t.pid
遍历出的结果是
1 0 zhang
2 1 li
3 1 wang
4 2 liu
[b]如果从id=4开始遍历出所有的父节点,则语句应该是[/b]
select * from test start with t.id = 4 connect by prior t.pid = t.id
[b]如果想添加其他的条件,应该在嵌套一层 ,如下[/b]
select * from test t where t.id in
(select * from test start with t.id = 4 connect by prior t.pid = t.id
) and t.name like '%zhang%'