शुरू करेंमुफ़्त में शुरू करें

हाइरार्की में स्थिति निकालें

रिकर्शन के साथ काम करते समय एक महत्वपूर्ण समस्या है रिकर्शन का स्तर ट्रैक करना। IT संगठन में, इसका मतलब है हर कर्मचारी की हाइरार्की में स्थिति को ट्रैक करना।

A section of the entire hierarchy

इसके लिए, आप LEVEL फ़ील्ड का उपयोग करेंगे जो मौजूदा रिकर्शन स्टेप को ट्रैक करता है। आपको इस फ़ील्ड को एंकर मेम्बर में शामिल करना है, और रिकर्शन मेम्बर में हर रिकर्शन स्टेप पर इस मान को बढ़ाना है।

ध्यान रखें, पहली हाइरार्की लेवल 0 है, दूसरी लेवल 1 है, और आगे इसी तरह।

यह अभ्यास पाठ्यक्रम का हिस्सा है

SQL Server में Hierarchical और Recursive Queries

पाठ्यक्रम देखें

अभ्यास निर्देश

  • रिकर्शन की शुरुआत में LEVEL फ़ील्ड को 1 से initialize करें.
  • Supervisor पर फ़िल्टर करके IT डायरेक्टर की जानकारी को CTE के शुरुआती स्टेप के रूप में चुनें.
  • LEVEL को मौजूदा रिकर्शन स्टेप पर सेट करें.
  • सुपरवाइज़र और एम्प्लॉयी के ID पर परिभाषित CTE के साथ JOIN करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

WITH employee_hierarchy AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor,
  		-- Initialize the field LEVEL
  		___ as LEVEL
	FROM employee
  	-- Start with the supervisor ID of the IT Director
	WHERE ___ = ___
	UNION ALL
	SELECT 
  		emp.ID,
  		emp.NAME,
  		emp.Supervisor,
  		-- Increment LEVEL by 1 each step
  		___ + 1
	FROM employee emp
		JOIN employee_hierarchy
  		-- JOIN on supervisor and ID
  		ON emp.___ = employee_hierarchy.___)
    
SELECT 
	cte.Name, cte.Level,
    emp.Name as ManagerID
FROM employee_hierarchy as cte
	JOIN employee as emp
	ON cte.Supervisor = emp.ID 
ORDER BY Level;
कोड संपादित करें और चलाएँ