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

एकाधिक माता-पिता वाले बच्चों के लिए पैरेंट-चाइल्ड रिकॉर्ड वापस करने के लिए SQL Server 2005 CTE कैसे बनाएं

आपके सीटीई में सिंटैक्स त्रुटि को ठीक करने के बाद, यह मेरे लिए ठीक काम करता प्रतीत होता है:

create table #ParentChildTable 
(nodeID int not null
,parentNodeID int not null
)

insert #ParentChildTable 
select 900,56
union all select 900,123
union all select 123,439
union all select 56,439
union all select 439,0

;WITH Heirarchy
AS
(
    SELECT 
        T1.NodeID,
          T1.ParentNodeID
    FROM
        #ParentChildTable T1
    WHERE
        T1.NodeID = 439

    UNION ALL
    SELECT 
        T1.NodeID,
        T1.ParentNodeID
    FROM
        #ParentChildTable T1
        INNER JOIN Heirarchy TH ON TH.NodeID = T1.ParentNodeID
)
select *
from Heirarchy

परिणाम लौटाता है:

NodeID      ParentNodeID
----------- ------------
439         0
123         439
56          439
900         56
900         123


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जावा से MSSQL अनुरोध के लिए उपयोगकर्ता परिभाषित तालिका प्रकार कैसे पास करें?

  2. डेटाटाइमऑफ़सेट हाइबरनेट मैपिंग

  3. इंडेक्स विखंडन की जाँच करते समय '(' के पास गलत सिंटैक्स

  4. अलग कॉलम में प्रत्येक DISTINCT पंक्ति के लिए कई पंक्तियों से तीन तालिकाओं और कुल डेटा में शामिल हों

  5. IP पते वाले क्लाइंट को सर्वर Azure SQL डेटाबेस तक पहुँचने की अनुमति नहीं है