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

मेरा सुपरवाइज़र कौन है?

इस अभ्यास में, हम हायरार्की के सबसे ऊपर वाले बॉस से लेकर हायरार्की के सबसे नीचे वाले कर्मचारियों तक का path निकालना चाहते हैं। इस कार्य के लिए, आपको हर चरण में मिली जानकारी को एक ही फ़ील्ड में जोड़ना होगा। आप यह IDs को number से string में बदलकर CAST() के ज़रिए जोड़कर कर सकते हैं। उदाहरण के लिए, CAST(ID AS VARCHAR(MAX)) number टाइप की ID को char टाइप में बदलता है।

अब कार्य यह है कि कर्मचारियों Chris Feierabend जिसकी ID=18 है और Jasmin Mentil जिसकी ID=16 है, उनके लिए संगठन के सबसे ऊपर तक का path ढूँढें। आउटपुट इस तरह दिखना चाहिए: boss_first_level -> boss_second_level .... चयन कर्मचारियों की IDs का होना चाहिए, उनके नामों का नहीं।

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

SQL Server में Hierarchical और Recursive Queries

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

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

  • रिकर्शन की शुरुआती शर्त के साथ Path को सुपरवाइज़र (0) की ID पर इनिशियलाइज़ करें।
  • एंकर मेंबर को UNION करें और रिकर्सिव मेंबर के फ़ील्ड्स (ID, Name, Supervisor) परिभाषित करें।
  • हर चरण में Path में सुपरवाइज़र Supervisor की ID जोड़ें।
  • CTE में कर्मचारियों Chris Feierabend और Jasmin Mentil की IDs चुनें।

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

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

WITH employee_Hierarchy AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor,
  		-- Initialize the Path with CAST
  		___('___' AS VARCHAR(MAX)) as Path
	FROM employee
	WHERE Supervisor = 0
	-- UNION the anchor query 
  	___ ALL
    -- Select the recursive query fields
	SELECT 
  		emp.___,
  		emp.___,
  		emp.___,
  		-- Add the supervisor in each step. CAST the supervisor.
        Path + '->' + ___(emp.___ AS VARCHAR(MAX))
	FROM employee emp
		INNER JOIN employee_Hierarchy
  		ON emp.Supervisor = employee_Hierarchy.ID
)

SELECT Path
FROM employee_Hierarchy
-- Select the employees Chris Feierabend and Jasmin Mentil
WHERE ___ = 16 OR ID = ___;
कोड संपादित करें और चलाएँ