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

Oracle में sql में ट्री संरचना। SQL Oracle में ट्री, चाइल्ड नोड्स और पैरेंट नोड्स कैसे दिखाएं?

क्वेरी - संपूर्ण वृक्ष संरचना :

SELECT *
FROM   Employee
START WITH ParentID IS NULL
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;

प्रश्न - किसी कर्मचारी के बच्चे :

इसके लिए आपको एक पदानुक्रमित क्वेरी की आवश्यकता नहीं है।
(पैरेंट को बाइंड वेरिएबल :parent_id द्वारा दिया गया है। )

SELECT *
FROM   Employee
WHERE  ParentID = :parent_id
ORDER BY LastName, FirstName, ID;

क्वेरी - किसी दिए गए कर्मचारी के वंशज :

पूरे पेड़ के लिए एक ही क्वेरी लेकिन एक अलग प्रारंभ बिंदु के साथ
(माता-पिता को बाइंड वैरिएबल :parent_id द्वारा दिया गया है )

SELECT *
FROM   Employee
START WITH ParentID = :parent_id
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;

प्रश्न - कर्मचारी और उनके पूर्वज :

पिछली क्वेरी के समान लेकिन CONNECT BY . के साथ उलट दिया गया है और आपको भाई-बहनों को आदेश देने की आवश्यकता नहीं होगी क्योंकि प्रति कर्मचारी केवल एक तत्काल प्रबंधक होगा।
(कर्मचारी को बाइंड वेरिएबल :employee_id द्वारा दिया जाता है। )

SELECT *
FROM   Employee
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;

प्रश्न - कर्मचारी का प्रबंधक :

पिछली क्वेरी के समान लेकिन फ़िल्टर के साथ LEVEL = 2 तत्काल मूल पंक्ति प्राप्त करने के लिए।
(कर्मचारी को बाइंड वेरिएबल :employee_id द्वारा दिया जाता है। )

SELECT e.*
FROM   Employee e
WHERE  LEVEL = 2
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CTE से सम्मिलित करें

  2. पीएल/एसक्यूएल में किसी दिनांक सीमा पर पुनरावृति कैसे करें

  3. Oracle sql ट्यूटोरियल :बेसिक Sql स्टेटमेंट

  4. ऑरैकल कनेक्शन खोलते समय, कनेक्शन ऑब्जेक्ट शून्य होता है

  5. Oracle SqlPlus - एक फ़ाइल में आउटपुट सहेजना लेकिन स्क्रीन पर नहीं दिखाना