| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.misc -> Connect by prior question.
I've just been thrown into a large project requiring oracle 9i (im very
familiar with basic SQL commands from using MySQL) but I am trying to figure
this one out. Basically, I'm trying to figure out if I can do something
with a SELECT statement, or if I need to do this with PL/SQL.
I have a tree structure and I can get it to sort and select properly.
select lpad(' ', (level - 1) * 2) || section_name,
section_id,
parent_id,
nav_order,
level
from sections
connect by prior section_id = parent_id
start with section_id in (select section_id
from sections
where parent_id is null)
order SIBLINGS by nav_order;
This produces output like this:
Home
United States
New York State
Westchester County
Yonkers
White Plains
New Rochelle
Rockland County
Queens County
New Jersey State
Hudson County
Hoboken
Jersey City
Essex County
What I'd like to do is have it only show levels above it if I was in that
sub-section.
e.g:
Home
United States
New York State
New Jersey State
Hudson County
Hoboken
Jersey City
Essex County
So it would show everything at a certain level, and then everything at a certain other level if I told it which item is "bottom-most"..
Is this possible with a connect by, or would I need to use PL/SQL, or even do it in the programming language for the website it is for (jsp, though I'd like to avoid this and do it in Oracle if possible)
thanks. Received on Tue May 21 2002 - 15:59:30 CDT
![]() |
![]() |