Helmut Daiminger wrote:
> 
> Hi!
> 
> I have a SQL problem here, which I can't solve.
> 
> I have a B-tree structure in a table (parentID, childID).
> 
> If a parent has kids then select those kids. If not, select this parent.
> 
> How do I code this in SQL? I tried using "connect by" but this doesn't
> include start point.
> 
> Any idea?
> 
> This is 8.1.6 on Win2k.
> 
> Thanks,
> Helmut
> 
> --
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> --
> Author: Helmut Daiminger
>   INET: [EMAIL PROTECTED]


   select t.id, t.name
   from your_table t
   where t.id = what you are looking for
     and not exists (select null 
                     from your_table t2
                     where t2.parent_id = t.id)
   union
   select t.id, t.name
   from your_table t
   where t.parent_id = what you are looking for

 Index on parent_id, please.

Stephane Faroult
Oriole Corporation
Voice:  +44  (0) 7050-696-269 
Fax:    +44  (0) 7050-696-449 
Performance Tools & Free Scripts
--------------------------------------------------------------
http://www.oriole.com, designed by Oracle DBAs for Oracle DBAs
--------------------------------------------------------------
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Stephane Faroult
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to