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

शीर्ष स्तर पर अभिभावक बाल संबंध के लिए प्रश्न

क्योंकि Permission is NOT NULL पदानुक्रम में होना चाहिए, तो यह पंक्ति इस मामले के लिए रूट नोड बन जाती है। मैंने इसे RootID लेबल किया है यहाँ

एक ही ParentID = 0 . से कई शाखाओं को दिखाने के लिए और अधिक नमूना डेटा भी जोड़ा जड़

DECLARE @t TABLE (NodeId int, NodeName varchar(100), ParentId int, Permission int)
INSERT @t VALUES 
(1,'Node1',0,NULL),
(2,'Node2',1,1),
(3,'Node3',1,NULL),
(4,'Node4',1,NULL),
(5,'Node5',2,NULL),
(6,'Node6',5,NULL),
(7,'Node7',2,NULL),
(8,'Node1',0,NULL),
(9,'Node9',8,2),
(10,'Node10',9,NULL),
(11,'Node11',10,NULL),
(12,'Node12',11,NULL),
(13,'Node13',10,NULL),
(14,'Node14',9,NULL);

WITH CTE AS
(
    SELECT NodeId, NodeName, ParentId AS RootID FROM @t WHERE Permission IS NOT NULL
    UNION ALL
    SELECT T.NodeId, T.NodeName, CTE.RootID
    FROM @t T JOIN CTE ON T.ParentId = CTE.NodeId
)
SELECT
    *
FROM
    CTE
WHERE
    NodeName IN ('Node6', 'Node13');



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2008 में डेटा को जेसन प्रारूप में कैसे परिवर्तित करें?

  2. SQL सर्वर में VARCHAR और NVARCHAR डेटा प्रकार

  3. SQL सर्वर में स्वचालित योजना सुधार

  4. लिनक्स पर SQL सर्वर

  5. एक्सेल टेबल डेटा को SQL 2008R2 में स्थानांतरित करने का सबसे तेज़ तरीका