高分~请教这个需求如何实现

高分~~~~~~~~请教这个需求怎么实现!有一个表,如下IDBBBPARNETID11|admin|0220009|20009|1320010|20010|142

高分~~~~~~~~请教这个需求怎么实现!
有一个表,如下
                  ID                 BBB         PARNETID

11|admin|0
220009|20009|1
320010|20010|1
420011|20011|1
520012|20012|20009
620013|20013|20009
720014|20014|20010
820015|20015|20012
920016|20016       |20014
其中,PARENTID为父节点的ID。能否用一行sql查询,查询出所有的子节点和孙子节点,比如ID为1,则得到的结果是所有的9行记录,若ID为20009,则查询出的结果为2,5,6,8行记录。若用单纯的sql不行。则实现该功能的存储过程怎么写?



[解决办法]
select * from xxx
start with id=1
connect by prior bbb=parentid;

要不就是connect by prior parentid=bbb,记不太清了
[解决办法]
楼上说的是对的,递归实现

select * from test
start with id=1 //根接点
connect by prior id=PARNETID

prior 表示上条纪录
prior id=PARNETID 上条纪录的 id=本条的 PARNETID