Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

कोई भी नोड देते हुए जड़ से पूरे पेड़ का पता लगाएं

आपको सभी प्रबंधकों को लाने के लिए पहले पेड़ को पार करना होगा और फिर सभी कर्मचारियों को लाने के लिए नीचे जाना होगा:

select level, employee_id, last_name, manager_id ,
       connect_by_root employee_id as root_id
   from employees
connect by prior employee_id = manager_id -- down the tree
start with manager_id in ( -- list up the tree
     select manager_id 
       from employees
     connect by employee_id = prior manager_id -- up the tree
     start with employee_id = 101
     )
;

देखें http://www.sqlfiddle.com/#!4/d15e7/18

संपादित करें:

यदि दिया गया नोड रूट नोड भी हो सकता है, तो दिए गए नोड को पैरेंट नोड्स की सूची में शामिल करने के लिए क्वेरी का विस्तार करें:

गैर-रूट नोड के लिए उदाहरण:

select distinct employee_id, last_name, manager_id 
   from employees
connect by prior employee_id = manager_id -- down the tree
start with manager_id in ( -- list up the tree
     select manager_id 
       from employees
     connect by employee_id = prior manager_id -- up the tree
     start with employee_id = 101
     union 
     select manager_id -- in case we are the root node
       from employees
     where manager_id = 101
     )
;

रूट नोड के लिए उदाहरण:

select distinct employee_id, last_name, manager_id 
   from employees
connect by prior employee_id = manager_id -- down the tree
start with manager_id in ( -- list up the tree
     select manager_id 
       from employees
     connect by employee_id = prior manager_id -- up the tree
     start with employee_id = 100
     union 
     select manager_id -- in case we are the root node
       from employees
     where manager_id = 100
     )
;

फिडल http://www.sqlfiddle.com/#!4/d15e7/32 पर



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अमान्य संख्या

  2. स्ट्रिंग का प्रयोग करें oracle SQL क्वेरी में फ़ंक्शन शामिल है

  3. एसक्यूएल:पार्स कॉमा-सीमांकित स्ट्रिंग और शामिल होने के रूप में उपयोग करें

  4. oracle varchar to number

  5. Oracle DBMS - AFTER ट्रिगर - परिवर्तनशील तालिका में अद्यतन करने से पहले एक तालिका पढ़ें