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

MSSQL क्वेरी का उपयोग करके माता-पिता के सभी बच्चों को प्राप्त करना

मान लें कि आप भाई-बहन प्राप्त करना चाहते हैं मान @p0 . का , आप एक साधारण सेल्फ-जॉइन का उपयोग कर सकते हैं:

SELECT p.Child
FROM Table1 c
INNER JOIN Table1 p ON c.Parent = p.Parent
WHERE c.Child = @p0
AND p.Child <> @p0

यहां असमान खंड यह सुनिश्चित करता है कि आपके द्वारा खोजे गए मूल्य को शामिल न करते हुए आपको भाई-बहन मिले। इसे आवश्यकतानुसार हटा दें।

SQL Fiddle उदाहरण

चूंकि आप रिकर्सन का जिक्र करते हैं, शायद आप संपूर्ण पेड़ . चाहते हैं मान @p0 . के पैरेंट से शुरू हो रहा है . किस स्थिति में, आप पुनरावर्ती CTE का उपयोग कर सकते हैं:

WITH parent AS (
    SELECT Parent
    FROM Table1
    WHERE Child = @p0
), tree AS (
    SELECT x.Parent, x.Child
    FROM Table1 x
    INNER JOIN parent ON x.Parent = parent.Parent
    UNION ALL
    SELECT y.Parent, y.Child
    FROM Table1 y
    INNER JOIN tree t ON y.Parent = t.Child
)
SELECT Parent, Child
FROM tree

SQL Fiddle उदाहरण अपने डेटा का उपयोग करना औररिकर्सिव सीटीई को प्रदर्शित करने के लिए अतिरिक्त डेटा के साथ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SP_WhoIsActive या FogLight के माध्यम से SQL डेटाबेस की निगरानी करें | SQL सर्वर प्रदर्शन समस्या निवारण -1

  2. SQL सर्वर 2019 में फ़ाइलों को कॉपी करने का नया तरीका

  3. xp_cmdshell को निष्पादित करने की अनुमति प्राप्त करना

  4. SQL सर्वर में डेटाटाइम सम्मिलित करने के लिए Sql क्वेरी

  5. माइक्रोसॉफ्ट एसक्यूएल सर्वर 2005/2008:एक्सएमएल बनाम टेक्स्ट/वर्कर डेटा प्रकार