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

सभी संभावित पैरेंट्स को एक फ़ील्ड में पाएँ

इस अध्याय का आपका अंतिम कार्य है: किसी एक ID से शुरू करके सभी संभावित पैरेंट्स ढूँढना और मिली हुई सभी पीढ़ियों की IDs को एक ही फ़ील्ड में जोड़ना।

इसके लिए, आप सभी संभावित सदस्यों को रिकर्सिव तरीके से खोजेंगे और यह जानकारी एक फ़ील्ड में जोड़ेंगे। IDs को एक स्ट्रिंग में मिलाने के लिए आपको CAST() ऑपरेटर का उपयोग करना होगा। आप ID = 290 से शुरू करते हुए सभी फैमिली मेम्बर्स खोजेंगे। टेबल family में कुल 300 एंट्रीज़ हैं।

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

SQL Server में Hierarchical और Recursive Queries

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

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

  • शुरुआती बिंदु के रूप में 290 का ParentID सेट करें।
  • यदि CASE ऑपरेशन में Parent.ID = '' है, तो Parent फ़ील्ड को वर्तमान ParentID पर सेट करें।
  • यदि CASE ऑपरेशन में Parent.ID <> '' है, तो हर iteration में वर्तमान Parent में Parent ID जोड़ें।
  • परिभाषित CTE से Name और Parent सेलेक्ट करें।

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

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

WITH tree AS (
	SELECT 
  		ID,
  		Name, 
  		ParentID, 
  		CAST('0' AS VARCHAR(MAX)) as Parent
	FROM family
  	-- Initialize the ParentID to 290 
  	WHERE ___ = ___    
    UNION ALL
    SELECT 
  		Next.ID, 
  		Next.Name, 
  		Parent.ID,
    	CAST(CASE WHEN Parent.ID = ''
        	      -- Set the Parent field to the current ParentID
                  THEN(CAST(Next.___ AS VARCHAR(MAX)))
        	 -- Add the ParentID to the current Parent in each iteration
             ELSE(Parent.Parent + ' -> ' + CAST(Next.___ AS VARCHAR(MAX)))
    		 END AS VARCHAR(MAX))
        FROM family AS Next
        	INNER JOIN tree AS Parent 
  			ON Next.ParentID = Parent.ID)
        
-- Select the Name, Parent from tree
SELECT ___, ___
FROM ___;
कोड संपादित करें और चलाएँ