How do I sort a linked list in sql?

后端 未结 4 746
遇见更好的自我
遇见更好的自我 2020-12-08 07:45

I have implemented a linked list as a self-referencing database table:

CREATE TABLE LinkedList(
    Id bigint NOT NULL,
    ParentId bigint NULL,
    SomeDat         


        
4条回答
  •  爱一瞬间的悲伤
    2020-12-08 08:38

    (edit: d'oh! While I was debugging you found it too!)

    In SQL Server:

    ;WITH cte (Id, ParentId, SomeData, [Level]) AS (
        SELECT Id, ParentId, SomeData, 0
        FROM LinkedList
        WHERE ParentId IS NULL
        UNION ALL
        SELECT ll.Id, ll.ParentId, ll.SomeData, cte.[Level] + 1
        FROM LinkedList ll
        INNER JOIN cte ON ll.ParentID = cte.ID
    )
    SELECT * FROM cte
    ORDER BY [Level]
    

提交回复
热议问题